sup rev 42
Improvment and fixes after some usage/testing
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Wed Mar 08 00:15:04 2017 +0100 (2017-03-08) |
parents | 2b701f1364b2 |
children | 53527d66b446 |
files | Makefile libsup.sh server/sup/sup-admin.cgi server/sup/sup.cgi sup |
line diff
1.1 --- a/Makefile Wed Mar 01 00:06:21 2017 +0100 1.2 +++ b/Makefile Wed Mar 08 00:15:04 2017 +0100 1.3 @@ -38,15 +38,18 @@ 1.4 install: 1.5 install -m 0755 -d $(DESTDIR)$(PREFIX)/bin 1.6 install -m 0755 -d $(DESTDIR)$(PREFIX)/lib/slitaz 1.7 + install -m 0755 -d $(DESTDIR)$(PREFIX)/share/sup 1.8 install -m 0755 -d $(DESTDIR)$(PREFIX)/share/applications 1.9 install -m 0755 -d $(DESTDIR)$(PREFIX)/share/locale 1.10 install -m 0755 -d $(DESTDIR)$(PREFIX)/share/mime/packages 1.11 + install -m 0755 -d $(DESTDIR)$(PREFIX)/share/doc/slitaz 1.12 + 1.13 install -m 0755 sup $(DESTDIR)$(PREFIX)/bin 1.14 install -m 0755 libsup.sh $(DESTDIR)$(PREFIX)/lib/slitaz 1.15 install -m 0644 data/*.desktop $(DESTDIR)$(PREFIX)/share/applications 1.16 install -m 0644 data/mime/sup.xml $(DESTDIR)$(PREFIX)/share/mime/packages 1.17 - install -m 0755 -d $(DESTDIR)$(PREFIX)/share/sup 1.18 - install -m 0644 README $(DESTDIR)$(PREFIX)/share/sup 1.19 + 1.20 + cp -f README $(DESTDIR)$(PREFIX)/share/doc/slitaz/sup.txt 1.21 cp -rf sup-demo $(DESTDIR)$(PREFIX)/share/sup 1.22 cp -rf po/clients/mo/* $(DESTDIR)$(PREFIX)/share/locale 1.23
2.1 --- a/libsup.sh Wed Mar 01 00:06:21 2017 +0100 2.2 +++ b/libsup.sh Wed Mar 08 00:15:04 2017 +0100 2.3 @@ -29,13 +29,21 @@ 2.4 # Functions 2.5 # 2.6 2.7 -# Set ttysize= # stty will not work if called from GTK box or CGI script 2.8 +# --> get_cols 2.9 tty_size() { 2.10 if ! stty size | cut -d " " -f 2; then 2.11 echo 80 2.12 fi 2.13 } 2.14 2.15 +# Print info a la status way: info [color] [content] 2.16 +info() { 2.17 + local info="$2" 2.18 + local char="$(echo $info | wc -L)" 2.19 + local in=$((7 + ${char})) 2.20 + indent $(($(get_cols) - ${in})) "[ $(colorize $1 $info) ]" 2.21 +} 2.22 + 2.23 # Pretty Busybox wget output. Usage: download [name] [url] [dest] 2.24 # Download in current dir if $3 is not set 2.25 download() { 2.26 @@ -86,6 +94,16 @@ 2.27 status 2.28 } 2.29 2.30 +# System dependencies: exit on missing system deps ? 2.31 +check_sys_deps() { 2.32 + . /etc/slitaz/slitaz.conf # PKGS_DB 2.33 + for dep in ${DEPENDS}; do 2.34 + if [ ! -d "$PKGS_DB/installed/$dep" ]; then 2.35 + gettext "Missing dependency:"; colorize 31 " $dep"; return 1 2.36 + fi 2.37 + done 2.38 +} 2.39 + 2.40 # Install a sup package 2.41 install_sup() { 2.42 pkg="$(basename ${1%.sup})" 2.43 @@ -98,24 +116,19 @@ 2.44 cpio -i receip --quiet < ${supfile} 2.45 . receip 2.46 2.47 - # Install sup deps || exit on missing system deps ? 2.48 + # Install sup deps 2.49 gettext "Checking package dependencies" 2.50 - deps="$(echo $SUP_DEPS $DEPENDS | wc -L)" 2.51 + deps="$(echo $SUP_DEPS $DEPENDS | wc -w)" 2.52 in=$((8 + ${deps})) 2.53 indent $(($(tty_size) - ${in})) "[ $(colorize 033 $deps) ]" 2.54 2.55 for dep in ${SUP_DEPS}; do 2.56 - if [ ! "$installed/$dep" ]; then 2.57 + if [ ! -d "$installed/$dep" ]; then 2.58 gettext "Missing dependency:"; colorize 35 " $dep" 2.59 sup -i "$dep" 2.60 fi 2.61 done 2.62 - . /etc/slitaz/slitaz.conf # PKGS_DB 2.63 - for dep in ${DEPENDS}; do 2.64 - if [ ! "$PKGS_DB/installed/$dep" ]; then 2.65 - gettext "Missing dependency:"; colorize 31 " $dep" 2.66 - fi 2.67 - done 2.68 + check_sys_deps 2.69 2.70 # Remove existing package files to avoid untracked files 2.71 if [ -d "$installed/$PACKAGE" ]; then 2.72 @@ -149,7 +162,7 @@ 2.73 files_list="${cache}/install/${PACKAGE}-${VERSION}/files.list" 2.74 find . -type f -print > ${files_list} 2.75 find . -type l -print >> ${files_list} 2.76 - sed -i s/'^.'/''/g ${files_list} 2.77 + sed -i sed s'/^.//'g ${files_list} 2.78 2.79 # Back to pkg tree 2.80 cd ${cache}/install/${PACKAGE}-${VERSION}
3.1 --- a/server/sup/sup-admin.cgi Wed Mar 01 00:06:21 2017 +0100 3.2 +++ b/server/sup/sup-admin.cgi Wed Mar 08 00:15:04 2017 +0100 3.3 @@ -157,9 +157,18 @@ 3.4 # SUP SQLite commands testsuite 3.5 echo "<pre>" 3.6 3.7 + echo -n "Running: sqlite3 ANALYZE..." 3.8 + sqlite3 ${pkgsdb} 'ANALYZE' 3.9 + status 3.10 + 3.11 echo "Running: <span class='value'>SELECT name FROM pkgs LIMIT 4</span>" 3.12 sqlite3 ${pkgsdb} 'SELECT name FROM pkgs LIMIT 4' && newline 3.13 3.14 + # sqlite_master .schema 3.15 + echo "<span class='value'>sqlite_master schema</span>" 3.16 + echo "-----------------" 3.17 + sqlite3 ${pkgsdb} '.schema sqlite_master'; newline 3.18 + 3.19 # .schema 3.20 echo "<span class='value'>CREATE statements</span>" 3.21 echo "-----------------"
4.1 --- a/server/sup/sup.cgi Wed Mar 01 00:06:21 2017 +0100 4.2 +++ b/server/sup/sup.cgi Wed Mar 08 00:15:04 2017 +0100 4.3 @@ -19,7 +19,7 @@ 4.4 . paths.conf 4.5 fi 4.6 4.7 -# Custom paths.conf for easier development /avoid commiting this file 4.8 +# Custom paths.conf for easier development avoid commit this file 4.9 # with wrong paths like Pankso does! Full paths are needed for upload 4.10 # to work properly. 4.11 [ -f "${plugins}/sup/paths.conf" ] && . ${plugins}/sup/paths.conf
5.1 --- a/sup Wed Mar 01 00:06:21 2017 +0100 5.2 +++ b/sup Wed Mar 08 00:15:04 2017 +0100 5.3 @@ -42,10 +42,11 @@ 5.4 $(boldify $(gettext "Options:")) 5.5 --install update $(gettext "Install all updates from mirror") 5.6 --force update $(gettext "Force recharging packages database") 5.7 + --db list $(gettext "List all packages in database") 5.8 --init cook $(gettext "Initialize sup cook environment") 5.9 --verbose all $(gettext "Display more output messages") 5.10 5.11 -$(colorize 33 README) /usr/share/sup/README 5.12 +$(colorize 33 Manual) man sup 5.13 $(colorize 33 Documentation) http://scn.slitaz.org/?d=en/sup 5.14 5.15 EOT 5.16 @@ -187,6 +188,11 @@ 5.17 [ "$clean" ] && rm -rf ${workdir} 5.18 mkdir -p ${workdir} && cd ${workdir} 5.19 . ${wok}/${pkg}/receip 5.20 + gettext "Checking package dependencies" 5.21 + deps="$(echo $DEPENDS | wc -w)" 5.22 + in=$((8 + ${deps})) 5.23 + indent $(($(tty_size) - ${in})) "[ $(colorize 033 $deps) ]" 5.24 + check_sys_deps || exit 1 5.25 sup_install 5.26 separator 5.27 gettext "Working folder:"; echo " $workdir" 5.28 @@ -302,6 +308,7 @@ 5.29 | awk '{printf $1 " " $2}') 5.30 gettext "Database timestamp:" 5.31 indent $(($(tty_size) - 23)) "[ $(colorize 30 $timestamp) ]" 5.32 + log "$(gettext 'Updated packages database: $timestamp') " 5.33 fi 5.34 5.35 # Scan installed packages 5.36 @@ -325,16 +332,19 @@ 5.37 5.38 # MD5sum not matching: new version our new build ? 5.39 if [ "$md5_sum" != "$db_sum" ]; then 5.40 + 5.41 vers=$(sqlite3 ${pkgsdb} \ 5.42 "SELECT version FROM pkgs WHERE name = '$pkg'") 5.43 + 5.44 if [ "$VERSION" != "$vers" ]; then 5.45 - status="$(colorize 032 $(gettext "update"))" 5.46 + status="$(colorize 032 $(gettext "update") )" 5.47 else 5.48 status="$(colorize 035 $(gettext "rebuilt"))" 5.49 fi 5.50 echo "$pkg $(indent 30 $VERSION) $(indent 60 $status)" 5.51 echo "$pkg" >> ${cache}/updates 5.52 fi 5.53 + 5.54 done 5.55 5.56 if [ -f "$cache/updates" ]; then 5.57 @@ -365,10 +375,37 @@ 5.58 exit 1 5.59 fi ;; 5.60 5.61 + -s|search) 5.62 + # TODO: better :-) 5.63 + query="$2" 5.64 + newline 5.65 + echo -n "$(colorize 33 $(gettext 'Searching for:'))" 5.66 + boldify " $query" 5.67 + separator 5.68 + sqlite3 ${pkgsdb} << EOT 5.69 +.headers on 5.70 +.mode column 5.71 +SELECT name, version, short_desc FROM pkgs WHERE name = '$2'; 5.72 +EOT 5.73 + newline ;; 5.74 + 5.75 -l|list) 5.76 + # only --db 5.77 + if [ "$db" ]; then 5.78 + newline 5.79 + echo -n "$(colorize 33 $(gettext 'SUP packages in database:'))" 5.80 + boldify " $(sqlite3 ${pkgsdb} 'SELECT COUNT(name) FROM pkgs')" 5.81 + separator 5.82 + sqlite3 ${pkgsdb} << EOT 5.83 +.mode column 5.84 +SELECT name, short_desc FROM pkgs; 5.85 +EOT 5.86 + newline; exit 0 5.87 + fi 5.88 + 5.89 installed_nb=$(ls ${installed} | wc -l) 5.90 newline 5.91 - echo -n "$(colorize 36 $(gettext 'Installed sup packages:'))" 5.92 + echo -n "$(colorize 36 $(gettext 'Installed SUP packages:'))" 5.93 boldify " $installed_nb" 5.94 separator 5.95 for pkg in $(ls ${installed}); do 5.96 @@ -380,7 +417,7 @@ 5.97 fi 5.98 newline 5.99 if [ -d "$wok" ]; then 5.100 - echo -n "$(colorize 35 $(gettext 'Sup packages in your wok:'))" 5.101 + echo -n "$(colorize 35 $(gettext 'SUP packages in your wok:'))" 5.102 boldify " $(ls ${wok} | wc -l)" 5.103 separator 5.104 for pkg in $(ls ${wok}); do 5.105 @@ -388,7 +425,10 @@ 5.106 echo "$pkg $(indent 26 $VERSION) $(indent 42 $MAINTAINER)" 5.107 done 5.108 newline 5.109 - fi ;; 5.110 + fi 5.111 + echo -n "$(colorize 33 $(gettext 'SUP packages in database:'))" 5.112 + boldify " $(sqlite3 ${pkgsdb} 'SELECT COUNT(name) FROM pkgs')" 5.113 + newline ;; 5.114 5.115 ""|-h|help) help ;; 5.116