# HG changeset patch # User Aleksej Bobylev # Date 1420815912 -7200 # Node ID 31829db351f21ecfcdb5872e8c7f36b0edddc2e9 # Parent d2843d5ee9e6a3855d562718708da9477738fe66 Store sidebar settings in the session cookies (browser sets, changes, and sends them automatically); use " +EOT + } @@ -176,7 +183,7 @@ table_head() { cat << EOT - +
@@ -191,15 +198,22 @@ sidebar() { - repo=$(GET repo); repo=${repo:-Public} - my=$(GET my); my=${my:-my} - cat=$(GET cat); cat=${cat:-all} + repo=$(COOKIE repo); repo=${repo:-Public}; [ -n "$(GET repo)" ] && repo=$(GET repo) + my=$(COOKIE my); my=${my:-my}; [ -n "$(GET my)" ] && my=$(GET my) + cat=$(COOKIE cat); cat=${cat:-all}; [ -n "$(GET cat)" ] && cat=$(GET cat) cat << EOT - + + EOT @@ -283,10 +297,16 @@ } +header_repo_name() { + [ -d $PKGS_DB/undigest ] && [ "$repo" != "Public" ] && \ + echo "

$(_ 'Repository: %s' $(repo_name $1))

" +} + + # Print links to the pages pager() { - awk -F'"' -vpage="$page" -vnum_lines="$(wc -l < $1)" -vtext="$(_ 'Pages:') " -vurl="?cat=$category&repo=$repo&page=" ' + awk -F'"' -vpage="$page" -vnum_lines="$(wc -l < $1)" -vtext="$(_ 'Pages:') " -vurl="?list&page=" ' BEGIN{ num_pages = int(num_lines / 100) + (num_lines % 100 != 0) if (num_pages != 1) printf "

%s", text @@ -312,6 +332,7 @@ show_list() { cached=$(mktemp) + [ -n "$tag" ] && cat='' { for L in $LANG ${LANG%%_*}; do if [ -e "$PKGS_DB/packages-desc.$L" ]; then @@ -320,9 +341,9 @@ done [ -e "$i/blocked-packages.list" ] && cat $i/blocked-packages.list sed 's|.*|&\ti|' $i/installed.info - [ "$category" == 'extra' ] || [ $1 == 'my' ] || cat $i/packages.info - [ "$category" == 'extra' ] && sed 's|.*|&\t-\textra\t-\thttp://mirror.slitaz.org/packages/get/&\t-\t-\t-|' $PKGS_DB/extra.list - } | sort -t$'\t' -k1,1 | sed '/^$/d' | awk -F$'\t' -vc="${category:--}" -vt="${tag:--}" ' + [ "$cat" == 'extra' ] || [ $1 == 'my' ] || cat $i/packages.info + [ "$cat" == 'extra' ] && sed 's|.*|&\t-\textra\t-\thttp://mirror.slitaz.org/packages/get/&\t-\t-\t-|' $PKGS_DB/extra.list + } | sort -t$'\t' -k1,1 | sed '/^$/d' | awk -F$'\t' -vc="${cat:--}" -vt="${tag:--}" ' { if (PKG && PKG != $1) { if (SEL) { @@ -344,16 +365,17 @@ page=$(GET page); [ -z "$page" ] && page=1 pager="$(pager $cached)" - if [ "$pager" != "

$(_ 'Pages:')

" ]; then - [ -d $PKGS_DB/undigest ] && [ "$repo" != "Public" ] && \ - echo "

$(_ 'Repository: %s' $(repo_name $i))

" - echo "$pager" - - table_head - tail -n+$((($page-1)*100+1)) $cached | head -n100 - echo "
$(_ 'Name')
" - - echo "$pager" + list="$(tail -n+$((($page-1)*100+1)) $cached | head -n100)" + list1=${list:1:1} + if [ "$pager" != "

$(_ 'Pages:')

" ] && [ -n "$list1" ]; then + cat << EOT +$(header_repo_name $i) +$pager + $(table_head) + $list + +$pager +EOT fi rm -f $cached } @@ -385,24 +407,16 @@ # # List linkable packages. # - search_form - sidebar - LOADING_MSG=$(_ 'Listing linkable packages...') - loading_msg + search_form; sidebar + LOADING_MSG=$(_ 'Listing linkable packages...'); loading_msg + cat << EOT

$(_ 'Linkable packages')

-
-
- $(_ 'Selection:') - -
-
- $(show_button recharge) - $(show_button up) -
+
$(_ 'Selection:') $(show_button do=Link)
+
$(show_button recharge) $(show_button up)
EOT table_head @@ -428,17 +442,17 @@ ;; - *\ cat\ *) + *\ cats\ *) # - # List all packages by category. + # List of all categories. # - my=$(GET my); category=$(GET cat); repo=$(GET repo) - search_form - sidebar | sed "s/a_$category/active/;s/repo_$repo/active/" - if [ -z "$category" ] || [ "$category" == 'cat' ]; then + search_form; sidebar + + echo "

$(_ 'Categories list')

" + + for pkgsinfo in $(repo_list /packages.info); do + header_repo_name $(dirname $pkgsinfo) cat << EOT -

$(_ 'Categories list')

- @@ -449,9 +463,8 @@ EOT - params="&my=$my&repo=$repo" # don't forget it unexpectedly { - awk -F$'\t' '{print $3}' $PKGS_DB/packages.info | sort | uniq -c + awk -F$'\t' '{print $3}' $pkgsinfo | sort | uniq -c awk -F$'\t' '{print $3}' $PKGS_DB/installed.info | sed 's|.*|& i|' | sort | uniq -c } | sort -k2,2 | awk ' { @@ -460,34 +473,52 @@ } END { for (n in c) print n, m[n], i[n] - }' | sort | awk -vp="$params" '{ - printf "", $1, p, $1, $2, $3 + }' | sort | awk '{ + printf "", $1, $1, $2, $3 }' echo '
%s%d%d
%s%d%d
' - else - LOADING_MSG="$(_ 'Listing packages...')" - loading_msg - cat << EOT -

$(_ 'Category: %s' $category)

+ done + ;; + + + *\ list\ *) + # + # List all packages by category. + # + search_form; sidebar + LOADING_MSG="$(_ 'Listing packages...')"; loading_msg + + bcat="$cat"; brepo="$repo" + case $repo in + Any) + case $my in + my) title="$(_ 'Installed packages of category "%s"' "$bcat")" ;; + *) title="$(_ 'All packages of category "%s"' "$bcat")" ;; + esac ;; + *) + case $my in + my) title="$(_ 'Installed packages of category "%s" in repository "%s"' "$bcat" "$brepo")" ;; + *) title="$(_ 'All packages of category "%s" in repository "%s"' "$bcat" "$brepo")" ;; + esac ;; + esac + + cat << EOT +

$(_ 'Packages list')

+

$title

-
- $(_ 'Selection:') - - +
$(_ 'Selection:') + $([ "$my" != 'my' ] && show_button do=Install) + $(show_button do=Remove)
-
- $(show_button recharge) - $(show_button up) -
+
$(show_button recharge; show_button up)
EOT - for i in $(repo_list ""); do - show_list ${my#no} - done - echo '' - fi + for i in $(repo_list ""); do + show_list ${my#no} + done + echo '' ;; @@ -497,29 +528,20 @@ # and so get result including packages names and descriptions # pkg=$(GET search); [ -z "$pkg" ] && xhtml_footer && exit - repo=$(GET repo) cd $PKGS_DB - search_form - sidebar | sed "s/repo_$repo/active/" - LOADING_MSG="$(_ 'Searching packages...')" - loading_msg + + search_form; sidebar + LOADING_MSG="$(_ 'Searching packages...')"; loading_msg + cat << EOT

$(_ 'Search packages')

-
- $(_ 'Selection:') - - - $(_ 'Toogle all') -
-
- $(show_button recharge) - $(show_button up) -
+
$(_ 'Selection:'; show_button do=Install; show_button do=Remove) + $(_ 'Toogle all')
+
$(show_button recharge; show_button up)
- EOT if [ -n "$(GET files)" ]; then cat <$(_ 'Recharge') @@ -572,9 +593,7 @@

$(_ 'Recharge checks for new or updated packages')

-
- $(show_button up) -
+
$(show_button up)
@@ -593,25 +612,17 @@
 		#
 		# Upgrade packages
 		#
-		cd $PKGS_DB
-		search_form
-		sidebar
-		LOADING_MSG="$(_ 'Checking for upgrades...')"
-		loading_msg
+		search_form; sidebar
+		LOADING_MSG="$(_ 'Checking for upgrades...')"; loading_msg
+
 		cat << EOT
 

$(_ 'Up packages')

-
- $(_ 'Selection:') - - - $(_ 'Toogle all') -
-
- $(show_button recharge) -
+
$(_ 'Selection:'; show_button do=Install; show_button do=Remove) + $(_ 'Toogle all')
+
$(show_button recharge)
EOT tazpkg up --check >/dev/null @@ -632,44 +643,25 @@ # # Do an action on one or some packages # + search_form; sidebar + LOADING_MSG="$(_ 'Please wait')"; loading_msg + opt="" - pkgs="" - cmdline=$(echo ${QUERY_STRING#do=} | sed s'/&/ /g') - cmd=$(echo ${cmdline} | awk '{print $1}') - cmdline=${cmdline#*repo=* } - pkgs=$(echo $cmdline | sed -e s'/+/ /g' -e s'/pkg=//g' -e s/$cmd//) - pkgs="$(httpd -d "$pkgs")" - cmd=$(echo $cmd | tr [:upper:] [:lower:]) + cmd=$(echo $(GET do) | tr [:upper:] [:lower:]) + pkgs=$(echo $QUERY_STRING | awk 'BEGIN{RS="&";FS="="}{if($1=="pkg")print $2}') + pkgs=$(httpd -d "$pkgs") + bpkgs="$pkgs" case $cmd in - install) - cmd=get-install opt=--forced - LOADING_MSG="get-installing packages..." - MSG="$(_ 'Installing: %s' "$pkgs")" ;; - remove) - MSG="$(_ 'Removing: %s' "$pkgs")" ;; - link) - opt=$(readlink $PKGS_DB/fslink) - LOADING_MSG="linking packages..." - MSG="$(_ 'Linking: %s' "$pkgs")" ;; - block) - MSG="$(_ 'Blocking: %s' "$pkgs")" ;; - unblock) - MSG="$(_ 'Unblocking: %s' "$pkgs")" ;; - repack) - MSG="$(_ 'Repacking: %s' "$pkgs")" ;; + install) MSG="$(_ 'Installing: %s' "$bpkgs")"; opt=--forced; cmd=get-install ;; + remove) MSG="$(_ 'Removing: %s' "$bpkgs")" ;; + link) MSG="$(_ 'Linking: %s' "$bpkgs")"; opt=$(readlink $PKGS_DB/fslink) ;; + block) MSG="$(_ 'Blocking: %s' "$bpkgs")" ;; + unblock) MSG="$(_ 'Unblocking: %s' "$bpkgs")" ;; + repack) MSG="$(_ 'Repacking: %s' "$bpkgs")" ;; esac - search_form - sidebar - loading_msg - pkgs=$pkgs cat << EOT -

TazPkg: $cmd

+

TazPkg: $(GET do)

-
-
-

$(_ 'Performing tasks on packages')

-
-
$MSG
EOT for pkg in $pkgs; do @@ -684,16 +676,16 @@ # Packages info # pkg=$(GET info) - search_form - sidebar + search_form; sidebar + LOADING_MSG=$(_ 'Getting package info...'); loading_msg + + temp="${pkg#get-}" if [ -d $INSTALLED/$pkg ]; then . $INSTALLED/$pkg/receipt files=$(wc -l < $INSTALLED/$pkg/files.list) action="Remove" else cd $PKGS_DB - LOADING_MSG=$(_ 'Getting package info...') - loading_msg eval "$(awk -F$'\t' -vp=$pkg ' $1==p{ printf "PACKAGE=\"%s\"; VERSION=\"%s\"; CATEGORY=\"%s\"; ", $1, $2, $3 @@ -704,34 +696,30 @@ UNPACKED_SIZE=${SIZES#* } action="Install" - temp="${pkg#get-}" fi cat << EOT

$(_ 'Package %s' $PACKAGE)

+
-
-

EOT if [ "$temp" != "$pkg" -a "$action" == "Install" ]; then - show_button "do=Install&$temp&nf" + show_button "do=Install&nf" else - show_button "do=$action&$pkg" + show_button "do=$action" fi if [ -d $INSTALLED/$pkg ]; then if grep -qs "^$pkg$" $PKGS_DB/blocked-packages.list; then - show_button "do=Unblock&$pkg" + show_button do=Unblock else - show_button "do=Block&$pkg" + show_button do=Block fi - show_button "do=Repack&$pkg" + show_button do=Repack fi i18n_desc $pkg cat << EOT -

-
@@ -775,6 +763,8 @@ # TazPkg configuration page # cmd=$(GET admin) + search_form; sidebar + case "$cmd" in clean) rm -rf $CACHE_DIR/* ;; @@ -806,33 +796,32 @@ rm-repo=*) repository=${cmd#rm-repo=} rm -rf $PKGS_DB/undigest/$repository ;; + setlink) + [ -d "$(GET link)/$INSTALLED" ] && ln -fs $(GET link) $PKGS_DB/fslink ;; + removelink) + rm -f $PKGS_DB/fslink ;; esac - [ "$cmd" == "$(_n 'Set link')" ] && - [ -d "$(GET link)/$INSTALLED" ] && ln -fs $(GET link) $PKGS_DB/fslink - [ "$cmd" == "$(_n 'Remove link')" ] && rm -f $PKGS_DB/fslink - cache_files=$(find $CACHE_DIR -name *.tazpkg | wc -l) - cache_size=$(du -sh $CACHE_DIR | cut -f1 | sed 's|\.0||') - sidebar cat << EOT

$(_ 'Administration')

+ +

$(_ 'TazPkg administration and settings')

- $(show_button 'admin=&action=saveconf') - $(show_button 'admin=&action=listconf') - $(show_button 'admin=&action=quickcheck') - $(show_button 'admin=&action=fullcheck') + $(show_button action=saveconf) + $(show_button action=listconf) + $(show_button action=quickcheck) + $(show_button action=fullcheck)
EOT case "$(GET action)" in saveconf) - LOADING_MSG=$(_ 'Creating the package...') - loading_msg + LOADING_MSG=$(_ 'Creating the package...'); loading_msg echo "
"
 					cd $HOME
 					tazpkg repack-config | filter_taztools_msgs
@@ -851,26 +840,29 @@
 					echo ""
 					;;
 				quickcheck)
-					LOADING_MSG=$(_ 'Checking packages consistency...')
-					loading_msg
+					LOADING_MSG=$(_ 'Checking packages consistency...'); loading_msg
 					echo "
"
 					tazpkg check
 					echo "
" ;; fullcheck) - LOADING_MSG=$(_ 'Full packages check...') - loading_msg + LOADING_MSG=$(_ 'Full packages check...'); loading_msg echo "
"
 					tazpkg check --full
 					echo "
" ;; esac + + cache_files=$(find $CACHE_DIR -name *.tazpkg | wc -l) + cache_size=$(du -sh $CACHE_DIR | cut -f1 | sed 's|\.0||') + [ "$cache_files" == 0 ] && cache_size="0K" cat << EOT

$(_ 'Packages cache')

$(_ 'Packages in the cache: %s (%s)' $cache_files $cache_size) - - + $(show_button admin=clean) +

@@ -930,8 +922,8 @@

- - + $(show_button admin=setlink) + $(show_button admin=removelink)

EOT @@ -991,8 +983,8 @@ # # Show licenses for installed packages # - search_form - sidebar + search_form; sidebar + pkg=$(GET license) case $pkg in /*) @@ -1072,16 +1064,42 @@ ;; + *\ tags\ *) + # + # Show tag cloud + # + search_form; sidebar + + echo "

$(_ 'Tags list')

" + brepo="$repo" + case $repo in + Any) title="$(_ 'List of tags in all repositories')" ;; + *) title="$(_ 'List of tags in repository "%s"' "$brepo")" ;; + esac + echo "

$title

" + to_read="" + for i in $(repo_list ""); do + if [ ! -e $i/packages.info ] && [ $repo == 'Public' ]; then + list=installed; else list=packages; fi + to_read="$to_read $i/$list.info" + done + TAGS="$(awk -F$'\t' '{if($6){print $6}}' $to_read | tr ' ' $'\n' | sort | uniq -c)" + MAX="$(echo "$TAGS" | awk '{if ($1 > MAX) MAX = $1} END{print MAX}')" + echo "$TAGS" | awk -vMAX="$MAX" '{ + printf "%s ", int($1 * 7 / MAX + 1), $2, $1, $2 + }' + echo "

" + ;; + + *\ tag\ *) # - # Show packages with matching tag; show tag cloud + # Show packages with matching tag # - search_form - sidebar - tag=$(GET tag); repo=$(GET repo); my=$(GET my) - [ -z "$repo" ] && repo='Any' - if [ -n "$tag" ]; then - cat << EOT + search_form; sidebar + + tag=$(GET tag) + cat << EOT

$(_ 'Tag "%s"' $tag)

@@ -1093,23 +1111,36 @@ EOT - for i in $(repo_list ""); do - show_list all - done - echo '' + for i in $(repo_list ""); do + show_list all + done + echo '' + ;; - else - params="&my=$my&repo=$repo" # don't forget it unexpectedly - echo "

$(_ 'Tags list')

" - echo "

" - if [ ! -e $PKGS_DB/packages.info ]; then list=installed; else list=packages; fi - TAGS="$(awk -F$'\t' '{if($6){print $6}}' $PKGS_DB/$list.info | tr ' ' $'\n' | sort | uniq -c)" - MAX="$(echo "$TAGS" | awk '{if ($1 > MAX) MAX = $1} END{print MAX}')" - echo "$TAGS" | awk -vMAX="$MAX" -vp="$params" '{ - printf "%s ", int($1 * 7 / MAX + 1), $2, p, $1, $2 - }' - echo "

" - fi + + *\ blocked\ *) + # + # Show blocked packages list + # + search_form; sidebar + + cat << EOT +

$(_ 'Blocked packages list')

+ +
+
+
$(_ 'Selection:'; show_button do=Unblock) +
+
+EOT + table_head + for i in $(cat $PKGS_DB/blocked-packages.list); do + awk -F$'\t' -vp="$i" '{ + if ($1 == p) + printf "
\n", $1, gensub(/\+/, "%2B", "g", $1), $1, $2, $4, $5 + }' $PKGS_DB/installed.info + done + echo '
%s%s%s
' ;; @@ -1117,8 +1148,8 @@ # # Default to summary # - search_form - sidebar + search_form; sidebar + [ -n "$(GET block)" ] && tazpkg block $(GET block) [ -n "$(GET unblock)" ] && tazpkg unblock $(GET unblock) cat << EOT @@ -1139,12 +1170,12 @@ $(_ 'Last recharge:') EOT - recharged="$(ls -l $PKGS_DB/packages.list | awk '{print $6, $7, $8}')" + recharged="$(date -r $PKGS_DB/packages.info +%c 2>/dev/null)" if [ -z "$recharged" ]; then _ 'never' else - echo $recharged - if [ -n "$(find $PKGS_DB/packages.list -mtime +10)" ]; then + echo "$recharged" + if [ -n "$(find $PKGS_DB/packages.info -mtime +10)" ]; then _ '(Older than 10 days)' else _ '(Not older than 10 days)' @@ -1152,16 +1183,24 @@ fi cat << EOT -$(_ 'Installed packages:') - $(cat $PKGS_DB/installed.info | wc -l) -$(_ 'Mirrored packages:') - $(cat $PKGS_DB/packages.list | wc -l) -$(_ 'Upgradeable packages:') - $(cat $PKGS_DB/packages.up | wc -l) -$(_ 'Installed files:') - $(cat $INSTALLED/*/files.list | wc -l) -$(_ 'Blocked packages:') - $(cat $PKGS_DB/blocked-packages.list | wc -l) + + $(_ 'Installed packages:') + $(cat $PKGS_DB/installed.info | wc -l) + $(_ '(show)') + + $(_ 'Mirrored packages:') + $(cat $PKGS_DB/packages.list | wc -l) + + $(_ 'Upgradeable packages:') + $(cat $PKGS_DB/packages.up | wc -l) + $(_ '(show)') + + $(_ 'Installed files:') + $(cat $INSTALLED/*/files.list | wc -l) + + $(_ 'Blocked packages:') + $(cat $PKGS_DB/blocked-packages.list | wc -l) + $(_ '(show)') diff -r d2843d5ee9e6 -r 31829db351f2 tazpanel/pkgs.css --- a/tazpanel/pkgs.css Sat Jan 03 17:38:17 2015 +0200 +++ b/tazpanel/pkgs.css Fri Jan 09 17:05:12 2015 +0200 @@ -5,9 +5,13 @@ #sidebar { position: fixed; - top: 76px; - right: 5px; + top: 60px; + right: 0; + padding: 5px 5px 0 0; width: 132px; + height: 100%; + border-left: 1pt solid #AAA; + background-color: #EEE; } #sidebar h4 { @@ -94,6 +98,11 @@ max-width: 30em; } +.pkglist tr { border-bottom: 1pt solid #DDD; } + +.pkglist, .pkglist thead { border: 1.5pt solid #BBB!important; } + + #actions { overflow: auto; } a.pages { @@ -133,3 +142,13 @@ a.tag1:hover, a.tag2:hover, a.tag3:hover, a.tag4:hover, a.tag5:hover, a.tag6:hover, a.tag7:hover, a.tag8:hover { outline: 1.5pt solid #FC8; } +#actions { + background-color: #EEE; + margin: 0; padding: 0 0.5ex!important; + border: 1pt solid #DDD; + border-radius: 0.5ex; +} +.button img { + padding: 0 4px 0 0; +} + diff -r d2843d5ee9e6 -r 31829db351f2 tazpkg --- a/tazpkg Sat Jan 03 17:38:17 2015 +0200 +++ b/tazpkg Fri Jan 09 17:05:12 2015 +0200 @@ -2280,13 +2280,13 @@ esac done time=$(date +%s) - installed_sum=$PKGS_DB/installed.$SUM + look_for_priority for repo in $priority; do pkg_list=$repo/packages.list mtime=$(find $pkg_list -mtime +7) if [ "$mtime" ]; then - if [ "$repo" = "$PKGS_DB" ]; then + if [ "$repo" == "$PKGS_DB" ]; then repo_name=main else repo_name="${repo##*/}" @@ -2295,10 +2295,14 @@ tazpkg recharge $repo_name fi done + emsg "$(_ 'Package') $(_ 'Version') $(_ 'Status')<->" + cd $INSTALLED newline > $UP_LIST blocked_count=0 + installed_sum=$PKGS_DB/installed.$SUM + for pkg in *; do [ ! -d $pkg ] && continue unset VERSION EXTRAVERSION @@ -2340,7 +2344,7 @@ upnb=$(wc -l < $UP_LIST) pkgs=$(ls | wc -l) time=$(($(date +%s) - $time)) - if [ "$upnb" = 0 ]; then + if [ "$upnb" == 0 ]; then install="n" _ 'System is up-to-date...' fi @@ -2352,7 +2356,8 @@ if [ "$upnb" != 0 ]; then blocked="$(_p \ - '%s blocked' '%s blocked' $blocked_count \ + '%s blocked' \ + '%s blocked' $blocked_count \ $blocked_count)" boldify "$(_p \