@@ -736,10 +736,9 @@ parser() {
736736# # List
737737# list all the avalible suites varients and their status
738738list () {
739-
739+ INFO " list() "
740740 export size=false
741741 export show_installed_only=false
742- local show_pretty=false
743742 local show_remote_download_size=false
744743 local path=$DEFAULT_FS_INSTALL_DIR
745744
@@ -750,171 +749,119 @@ list() {
750749 --list-installed) show_installed_only=true; shift 1;;
751750 --path) path=$2 ; LOG " list(): looking in $path " ; shift 2;;
752751 --help) help_list; exit 0;;
753- --pretty) show_pretty=true; shift 1;;
754752 * ) shift ;;
755753 esac
756754 done
757755
758- fetch_distro_data " offline"
759-
756+ if ! $show_remote_download_size ; then
757+ fetch_distro_data " offline"
758+ else
759+ fetch_distro_data " online"
760+ fi
761+
760762 suites=$( cat $distro_data | jq -r ' .suites[]' )
763+ tempfile=$( mktemp udroid-list-table-XXXXXX)
761764
762- if ! $show_pretty ; then
763- # loop over suites
764- for suite in $suites ; do
765- echo " $suite : "
766- varients=$( cat $distro_data | jq -r " .$suite .varients[]" )
767-
768- # loop over varients
769- for varient in $varients ; do
770- # get name
771- name=$( cat $distro_data | jq -r " .$suite .$varient .Name" )
772- supported_arch=$( cat $distro_data | jq -r " .$suite .$varient .arch" )
773-
774- host_arch=$( dpkg --print-architecture)
775- if [[ $host_arch =~ $supported_arch ]]; then
776- supported=true
777- else
778- supported=false
779- fi
780-
781- # check if installed
782- if [[ -d $path /$name ]]; then
783- _installed=" [installed]"
784- else
785- _installed=" "
786- fi
787-
788- # check size
789- if [[ $size == true ]]; then
790- if [[ -d $path /$name ]]; then
791- _size=" [ SIZE: $( du -sh $path /$name | awk ' {print $1}' ) ]"
792- else
793- _size=" "
794- fi
795- else
796- _size=" "
797- fi
798-
799- # set support status
800- if [[ $supported == true ]]; then
801- support_status=" \e[1;32m [supported]\e[0m"
802- else
803- support_status=" \e[31m [unsupported]\e[0m"
804- fi
805-
806- # print out
807- if ! $show_installed_only ; then
808- echo -e " \t- $varient $support_status $_installed $_size "
809- else
810- if [[ -d $path /$name ]]; then
811- echo -e " \t- $varient $support_status $_installed $_size "
812- fi
813- fi
814- done
815- done
765+ if $size ; then
766+ _size_header=" size |"
767+ _size_line=" --|"
816768 else
817- tempfile=$( mktemp udroid-list-table-XXXXXX)
818-
819- if $size ; then
820- _size_header=" size |"
821- _size_line=" --|"
822- else
823- _size_header=" "
824- _size_line=" "
825- fi
826-
827- if $show_remote_download_size ; then
828- _r_size_header=" down* size |"
829- _r_size_line=" --|"
830- else
831- _r_size_header=" "
832- _r_size_line=" "
833- fi
834-
835- # header
836- echo -e " | suites | supported | status |$_size_header$_r_size_header " > $tempfile
837- echo -e " |--------|-----------|--------|$_size_line " $_r_size_line >> $tempfile
838-
839- for suite in $suites ; do
840- varients=$( cat $distro_data | jq -r " .$suite .varients[]" )
841-
842- # loop over varients
843- for varient in $varients ; do
844- # get name
845- name=$( cat $distro_data | jq -r " .$suite .$varient .Name" )
846- supported_arch=$( cat $distro_data | jq -r " .$suite .$varient .arch" )
847-
848- host_arch=$( dpkg --print-architecture)
849- if [[ $host_arch =~ $supported_arch ]]; then
850- supported=true
851- else
852- supported=false
853- fi
854-
855- if $supported ; then
856- if $show_remote_download_size ; then
857- link=$( cat $distro_data | jq -r " .$suite .$varient .${host_arch} url" )
858- remote_size=$( wget --spider -m -np $link 2>&1 | grep -i Length | awk ' {print $2}' )
859-
860- if [[ -z $remote_size ]]; then
861- remote_size=" ?"
862- else
863- remote_size=$( numfmt --to=iec-i --suffix=B --padding=7 $remote_size ) # <- By GitHub Copilot
864- fi
865- fi
866- fi
867-
868- # check if installed
869- if [[ -d $path /$name ]]; then
870- _installed=" [installed]"
769+ _size_header=" "
770+ _size_line=" "
771+ fi
772+
773+ if $show_remote_download_size ; then
774+ _r_size_header=" down* size |"
775+ _r_size_line=" --|"
776+ else
777+ _r_size_header=" "
778+ _r_size_line=" "
779+ fi
780+
781+ echo -e " reading data ( This a may take a minute ) ..."
782+
783+ # header
784+ echo -e " | suites | supported | status |$_size_header$_r_size_header " > $tempfile
785+ echo -e " |--------|-----------|--------|$_size_line " $_r_size_line >> $tempfile
786+
787+ for suite in $suites ; do
788+ varients=$( cat $distro_data | jq -r " .$suite .varients[]" )
789+ # loop over varients
790+ for varient in $varients ; do
791+ # get name
792+ name=$( cat $distro_data | jq -r " .$suite .$varient .Name" )
793+ supported_arch=$( cat $distro_data | jq -r " .$suite .$varient .arch" )
794+ host_arch=$( dpkg --print-architecture)
795+
796+ if [[ $host_arch =~ $supported_arch ]]; then
797+ supported=true
871798 else
872- _installed= " "
873- fi
799+ supported=false
800+ fi
874801
875- # check size
876- if [[ $size == true ]]; then
877- if [[ -d $path /$name ]]; then
878- _size=" $( du -sh $path /$name 2> /dev/null | awk ' {print $1}' ) |"
802+ if $supported ; then
803+ if $show_remote_download_size ; then
804+ link=$( cat $distro_data | jq -r " .$suite .$varient .${host_arch} url" )
805+ remote_size=$( wget --spider -m -np $link 2>&1 | grep -i Length | awk ' {print $2}' )
806+ if [[ -z $remote_size ]]; then
807+ remote_size=" ?"
879808 else
880- _size= " | "
809+ remote_size= $( numfmt --to=iec-i --suffix=B --padding=7 $remote_size ) # <- By GitHub Copilot
881810 fi
882- else
883- _size=" "
884811 fi
812+ fi
885813
886- # set support status
887- if [[ $supported == true ]]; then
888- support_status=" YES"
814+ # check if installed
815+ if [[ -d $path /$name ]]; then
816+ _installed=" [installed]"
817+ else
818+ _installed=" "
819+ fi
820+
821+ # check size
822+ if [[ $size == true ]]; then
823+ if [[ -d $path /$name ]]; then
824+ _size=" $( du -sh $path /$name 2> /dev/null | awk ' {print $1}' ) |"
889825 else
890- support_status= " NO "
826+ _size= " | "
891827 fi
892-
893- # print out
894- if ! $show_installed_only ; then
828+ else
829+ _size=" "
830+ fi
831+
832+ # set support status
833+ if [[ $supported == true ]]; then
834+ support_status=" YES"
835+ else
836+ support_status=" NO"
837+ fi
838+
839+ # print out
840+ if ! $show_installed_only ; then
841+ echo -e " |$suite :$varient |$support_status |$_installed |$_size$remote_size " >> $tempfile
842+ else
843+ if [[ -d $path /$name /bin ]]; then
895844 echo -e " |$suite :$varient |$support_status |$_installed |$_size$remote_size " >> $tempfile
896- else
897- if [[ -d $path /$name /bin ]]; then
898- echo -e " |$suite :$varient |$support_status |$_installed |$_size$remote_size " >> $tempfile
899- fi
900845 fi
901- done
846+ fi
902847 done
903- # footer
904- {
905- echo " "
906- echo " "
907- echo " **SIZE**: space occupied by installed distro"
908- echo " **DOWN* SIZE**: download size of suite"
909- echo " "
910- echo " To install one of suite (ex: **jammy:xfce**), run:"
911- echo " \`\`\` bash"
912- echo " udroid install jammy:xfce"
913- echo " \`\`\` "
914- } >> $tempfile
915-
916- g_format $tempfile
917- fi
848+ done
849+
850+ # footer
851+ {
852+ echo " "
853+ echo " "
854+ echo " **SIZE**: space occupied by installed distro"
855+ echo " **DOWN SIZE**: download size of suite"
856+ echo " "
857+ echo " To install a suite (ex: **jammy:raw**), run:"
858+ echo " \`\`\` bash"
859+ echo " udroid install jammy:raw"
860+ echo " \`\`\` "
861+ echo " "
862+ } >> $tempfile
863+
864+ g_format $tempfile
918865}
919866
920867remove () {
0 commit comments