Skip to content

Commit c87434d

Browse files
feat!: make pretty print default
Cause it looks good :) - fetch distro data from online when --download-size - add a lil message to make user wait - fix spacing in footer - some formatting
1 parent 8609954 commit c87434d

File tree

1 file changed

+96
-149
lines changed

1 file changed

+96
-149
lines changed

udroid/src/udroid.sh

Lines changed: 96 additions & 149 deletions
Original file line numberDiff line numberDiff line change
@@ -736,10 +736,9 @@ parser() {
736736
## List
737737
# list all the avalible suites varients and their status
738738
list() {
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

920867
remove() {

0 commit comments

Comments
 (0)