Skip to content

Commit 3d3a510

Browse files
Merge pull request #31 from RandomCoderOrg/revamp-v2.5-list-table
Revamp v2.5 list table
2 parents bc0050f + d4ab3a3 commit 3d3a510

File tree

2 files changed

+120
-43
lines changed

2 files changed

+120
-43
lines changed

udroid/src/gum_wrapper.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,10 @@ function g_spin() {
6060
$GUM spin -s "$spinner" --title "$title" -- $cmd
6161
echo -e "[\xE2\x9C\x94] $title"
6262
}
63+
64+
function g_format () {
65+
file=$1
66+
[[ -z $file ]] && die "g_format: file not specified"
67+
$GUM format < $file
68+
}
69+

udroid/src/udroid.sh

Lines changed: 113 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -739,6 +739,7 @@ list() {
739739

740740
export size=false
741741
export show_installed_only=false
742+
local show_pretty=false
742743
local path=$DEFAULT_FS_INSTALL_DIR
743744

744745
while [ $# -gt 0 ]; do
@@ -747,6 +748,7 @@ list() {
747748
--list-installed) show_installed_only=true; shift 1;;
748749
--path) path=$2; LOG "list(): looking in $path"; shift 2;;
749750
--help) help_list; exit 0;;
751+
--pretty) show_pretty=true; shift 1;;
750752
*) shift ;;
751753
esac
752754
done
@@ -755,60 +757,128 @@ list() {
755757

756758
suites=$(cat $distro_data | jq -r '.suites[]')
757759

758-
# loop over suites
759-
for suite in $suites; do
760-
echo "$suite: "
761-
varients=$(cat $distro_data | jq -r ".$suite.varients[]")
762-
763-
# loop over varients
764-
for varient in $varients; do
765-
# get name
766-
name=$(cat $distro_data | jq -r ".$suite.$varient.Name")
767-
supported_arch=$(cat $distro_data | jq -r ".$suite.$varient.arch")
768-
769-
host_arch=$(dpkg --print-architecture)
770-
if [[ $host_arch =~ $supported_arch ]]; then
771-
supported=true
772-
else
773-
supported=false
774-
fi
775-
776-
# check if installed
777-
if [[ -d $path/$name ]]; then
778-
_installed="[installed]"
779-
else
780-
_installed=""
781-
fi
760+
if ! $show_pretty; then
761+
# loop over suites
762+
for suite in $suites; do
763+
echo "$suite: "
764+
varients=$(cat $distro_data | jq -r ".$suite.varients[]")
765+
766+
# loop over varients
767+
for varient in $varients; do
768+
# get name
769+
name=$(cat $distro_data | jq -r ".$suite.$varient.Name")
770+
supported_arch=$(cat $distro_data | jq -r ".$suite.$varient.arch")
771+
772+
host_arch=$(dpkg --print-architecture)
773+
if [[ $host_arch =~ $supported_arch ]]; then
774+
supported=true
775+
else
776+
supported=false
777+
fi
782778

783-
# check size
784-
if [[ $size == true ]]; then
779+
# check if installed
785780
if [[ -d $path/$name ]]; then
786-
_size="[ SIZE: $(du -sh $path/$name | awk '{print $1}') ]"
781+
_installed="[installed]"
782+
else
783+
_installed=""
784+
fi
785+
786+
# check size
787+
if [[ $size == true ]]; then
788+
if [[ -d $path/$name ]]; then
789+
_size="[ SIZE: $(du -sh $path/$name | awk '{print $1}') ]"
790+
else
791+
_size=""
792+
fi
787793
else
788794
_size=""
789795
fi
790-
else
791-
_size=""
792-
fi
793796

794-
# set support status
795-
if [[ $supported == true ]]; then
796-
support_status="\e[1;32m [supported]\e[0m"
797-
else
798-
support_status="\e[31m [unsupported]\e[0m"
799-
fi
797+
# set support status
798+
if [[ $supported == true ]]; then
799+
support_status="\e[1;32m [supported]\e[0m"
800+
else
801+
support_status="\e[31m [unsupported]\e[0m"
802+
fi
800803

801-
# print out
802-
if ! $show_installed_only; then
803-
echo -e "\t- $varient $support_status $_installed $_size"
804-
else
805-
if [[ -d $path/$name ]]; then
804+
# print out
805+
if ! $show_installed_only; then
806806
echo -e "\t- $varient $support_status $_installed $_size"
807+
else
808+
if [[ -d $path/$name ]]; then
809+
echo -e "\t- $varient $support_status $_installed $_size"
810+
fi
807811
fi
808-
fi
812+
done
809813
done
810-
done
814+
else
815+
tempfile=$(mktemp udroid-list-table-XXXXXX)
811816

817+
if $size; then
818+
_size_header=" size |"
819+
_size_line="--|"
820+
else
821+
_size_header=""
822+
_size_line=""
823+
fi
824+
825+
# header
826+
echo -e "| suites | supported | status |$_size_header" > $tempfile
827+
echo -e "|--------|-----------|--------|$_size_line" >> $tempfile
828+
829+
for suite in $suites; do
830+
varients=$(cat $distro_data | jq -r ".$suite.varients[]")
831+
832+
# loop over varients
833+
for varient in $varients; do
834+
# get name
835+
name=$(cat $distro_data | jq -r ".$suite.$varient.Name")
836+
supported_arch=$(cat $distro_data | jq -r ".$suite.$varient.arch")
837+
838+
host_arch=$(dpkg --print-architecture)
839+
if [[ $host_arch =~ $supported_arch ]]; then
840+
supported=true
841+
else
842+
supported=false
843+
fi
844+
845+
# check if installed
846+
if [[ -d $path/$name ]]; then
847+
_installed="[installed]"
848+
else
849+
_installed=""
850+
fi
851+
852+
# check size
853+
if [[ $size == true ]]; then
854+
if [[ -d $path/$name ]]; then
855+
_size="$(du -sh $path/$name 2> /dev/null | awk '{print $1}')"
856+
else
857+
_size=""
858+
fi
859+
else
860+
_size=""
861+
fi
862+
863+
# set support status
864+
if [[ $supported == true ]]; then
865+
support_status="YES"
866+
else
867+
support_status="NO"
868+
fi
869+
870+
# print out
871+
if ! $show_installed_only; then
872+
echo -e "|$suite:$varient|$support_status|$_installed|$_size" >> $tempfile
873+
else
874+
if [[ -d $path/$name/bin ]]; then
875+
echo -e "|$suite:$varient|$support_status|$_installed|$_size" >> $tempfile
876+
fi
877+
fi
878+
done
879+
done
880+
g_format $tempfile
881+
fi
812882
}
813883

814884
remove() {

0 commit comments

Comments
 (0)