1 # This file is part of the 'dragora-installer'.
3 # Purpose: Installation of .tlz packages from series.
8 --backtitle "\ZbPackage installation" \
9 --title "SELECT THE INSTALLATION MODE" \
10 --no-cancel --menu "" 6 58 0 \
11 "All" "Install all packages from chosen series" \
12 "Expert" "Select packages individually" \
13 2> ${SUBTMPDIR}/return-InstallPackages
17 case "$(cat -- ${SUBTMPDIR}/return-InstallPackages)" in
19 # Clean for subsequent filling
20 : > ${SUBTMPDIR}/return-InstallPackages_All
22 # Read (selected) series
23 IFS= read -r REPLY < ${SUBTMPDIR}/return-ShowSeries
27 find -- "${MEDIUM_SOURCE}"/@ARCH@ "${MEDIUM_SOURCE}"/noarch \
28 -type f \( -name "*@${serie}.tlz" -a ! -name "*-pass*" \) \
29 -printf '%p\n' >> ${SUBTMPDIR}/return-InstallPackages_All \
34 # Proceed to install the packages from selected series
36 if test -s ${SUBTMPDIR}/return-InstallPackages_All
38 sort ${SUBTMPDIR}/return-InstallPackages_All \
39 > ${SUBTMPDIR}/return-InstallPackages_All.sorted
41 # Set some packages at the top of the list to give priority
45 while test $count -lt $total
47 for string in hierarchyfs etc 'musl@libs' barelibs
49 ed -l -s ${SUBTMPDIR}/return-InstallPackages_All.sorted << EOF
56 unset -v count total string
60 # Calculate total number of packages installed to reflect
61 # the progress during package installation
64 total="$(awk 'END{ print NR }' ${SUBTMPDIR}/return-InstallPackages_All.sorted)"
69 --rootdir=/media/dragora-root \
70 --packagedir=/usr/pkg \
74 printf "%${COLUMNS}s %s\n" \
75 "$(tput bold)$(tput setaf 3)^ ${x} / ${total}$(tput sgr0)"
77 x=$((x+1)); # Increment counter.
78 done < ${SUBTMPDIR}/return-InstallPackages_All.sorted
82 echo "${PROGRAM}: All: Error the package list is empty." 1>&2
87 # Clean for subsequent filling
88 : > ${SUBTMPDIR}/search-InstallPackages_Expert
90 # Read (selected) series
91 IFS= read -r REPLY < ${SUBTMPDIR}/return-ShowSeries
95 find -- "${MEDIUM_SOURCE}"/@ARCH@ "${MEDIUM_SOURCE}"/noarch \
96 -type f \( -name "*@${serie}.tlz" -a ! -name "*-pass*" \) \
97 -printf '%p\n' >> ${SUBTMPDIR}/search-InstallPackages_Expert \
102 if test -s ${SUBTMPDIR}/search-InstallPackages_Expert
104 sort ${SUBTMPDIR}/search-InstallPackages_Expert \
105 > ${SUBTMPDIR}/search-InstallPackages_Expert.sorted
107 echo "${PROGRAM}: Expert: The package list is empty." 1>&2
111 # Dialog, package checklist composition
113 cat << EOF > ${SUBTMPDIR}/InstallPackages_Expert
114 dialog --colors --no-shadow \\
115 --backtitle "\ZbPackage selection from chosen series" \\
116 --title "SOFTWARE PACKAGES" \\
117 --no-cancel --item-help --checklist \\
118 "The following packages have been found according to the series.\n\n\\
119 Please use the cursor keys and \\Z3[Space]\\Zn to deselect the packages\n\\
120 you do not want to install. By default, all packages are selected." \\
121 $(( LINES - 6 )) $COLUMNS 16 \\
124 # Populate checklist item using information from meta files
129 echo "${PROGRAM}: Error no meta file(s) available." 1>&2
133 echo "\"${full_pkgname%@*}\" \"@${pkgcategory}\" ON \"${blurb}\" \\" \
134 >> ${SUBTMPDIR}/InstallPackages_Expert
135 done < ${SUBTMPDIR}/search-InstallPackages_Expert.sorted
137 # Add tail to get the answers
138 echo ' 2> ${SUBTMPDIR}/return-InstallPackages_Expert' \
139 >> ${SUBTMPDIR}/InstallPackages_Expert
141 touch ${SUBTMPDIR}/return-InstallPackages_Expert
144 . ${SUBTMPDIR}/InstallPackages_Expert
146 # Proceed to install the chosen packages
148 if test -s ${SUBTMPDIR}/return-InstallPackages_Expert
150 tr ' ' '\n' < ${SUBTMPDIR}/return-InstallPackages_Expert | \
151 sort > ${SUBTMPDIR}/return-InstallPackages_Expert.sorted
153 # Set some packages at the top of the list to give priority
157 while test $count -lt $total
159 for string in hierarchyfs etc 'musl$' barelibs
161 ed -l -s ${SUBTMPDIR}/return-InstallPackages_Expert.sorted << EOF
168 unset -v count total string
170 echo "${PROGRAM}: Expert: Error the package list is empty." 1>&2
176 # Calculate total number of packages installed to reflect
177 # the progress during package installation
180 total="$(awk 'END{ print NR }' ${SUBTMPDIR}/return-InstallPackages_Expert.sorted)"
182 # Proceed to install if there is a match in the search list
185 grep -s "${line}[@]" \
186 ${SUBTMPDIR}/search-InstallPackages_Expert.sorted | \
188 --rootdir=/media/dragora-root \
189 --packagedir=/usr/pkg \
193 printf "%${COLUMNS}s %s\n" \
194 "$(tput bold)$(tput setaf 3)^ ${x} / ${total}$(tput sgr0)"
196 x=$((x+1)); # Increment counter.
197 done < ${SUBTMPDIR}/return-InstallPackages_Expert.sorted