@@ -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
814884remove () {
0 commit comments