slitaz-pizza annotate web/pkgs.cgi @ rev 9
Edit pizza
author | Paul Issott <paul@slitaz.org> |
---|---|
date | Sun Mar 25 00:44:53 2012 +0000 (2012-03-25) |
parents | 8b324cb2c5e2 |
children | 05bb87925527 |
rev | line source |
---|---|
pankso@7 | 1 #!/bin/sh |
pankso@7 | 2 # |
paul@9 | 3 # SliTaz Pizza CGI/web interface - Let's have a pizza :-) |
pankso@7 | 4 # Packages step |
pankso@7 | 5 # |
pankso@7 | 6 |
pankso@7 | 7 . lib/libpizza |
pankso@7 | 8 |
pankso@7 | 9 id="$(GET id)" |
pankso@7 | 10 flavor="$(GET flavor)" |
pankso@7 | 11 skel="$(GET skel)" |
pankso@7 | 12 desc="$(GET desc)" |
pankso@7 | 13 mail="$(GET mail)" |
pankso@7 | 14 add="$(GET add)" |
pankso@7 | 15 log="$tmpdir/slitaz-$id/distro.log" |
pankso@7 | 16 list="$tmpdir/slitaz-$id/packages.list" |
pankso@7 | 17 |
pankso@7 | 18 # |
pankso@7 | 19 # Functions |
pankso@7 | 20 # |
pankso@7 | 21 |
pankso@7 | 22 list_pkgs() { |
paul@9 | 23 # Pizza uses local packages synced with mirror each night. |
pankso@7 | 24 pkgsdesc="$SLITAZ/$SLITAZ_VERSION/packages/packages.desc" |
pankso@7 | 25 [ ! -f "$pkgsdesc" ] && echo "Missing: $pkgsdesc" |
pankso@7 | 26 for pkg in $(cat $list) |
pankso@7 | 27 do |
pankso@7 | 28 IFS="|" |
pankso@7 | 29 grep "^$pkg |" $pkgsdesc | cut -f 1,2,3 -d "|" | \ |
pankso@7 | 30 while read PACKAGE VERSION SHORT_DESC |
pankso@7 | 31 do |
pankso@7 | 32 cat << EOT |
pankso@7 | 33 <tr> |
pankso@7 | 34 <td><input type="checkbox" name="pkg" value="$PACKAGE" /></td> |
pankso@7 | 35 <td>$PACKAGE</td> |
pankso@7 | 36 <td>$VERSION</td> |
pankso@7 | 37 <td>$SHORT_DESC</td> |
pankso@7 | 38 </tr> |
pankso@7 | 39 EOT |
pankso@7 | 40 done |
pankso@7 | 41 done |
pankso@7 | 42 } |
pankso@7 | 43 |
pankso@7 | 44 # Gen an empty receipt for new flavor. |
pankso@7 | 45 empty_receipt() { |
pankso@7 | 46 cat > $tmpdir/slitaz-$id/receipt << EOT |
pankso@7 | 47 # SliTaz flavor receipt. |
pankso@7 | 48 |
pankso@7 | 49 FLAVOR="" |
pankso@7 | 50 SHORT_DESC="" |
pankso@7 | 51 VERSION="$(date "+%Y%m%d")" |
pankso@7 | 52 MAINTAINER="" |
pankso@7 | 53 |
pankso@7 | 54 ID="" |
pankso@7 | 55 SKEL="" |
pankso@7 | 56 |
pankso@7 | 57 EOT |
pankso@7 | 58 } |
pankso@7 | 59 |
pankso@7 | 60 # |
pankso@7 | 61 # Actions |
pankso@7 | 62 # |
pankso@7 | 63 |
pankso@7 | 64 case " $(GET) " in |
pankso@7 | 65 *\ add\ *) |
pankso@7 | 66 for pkg in $add |
pankso@7 | 67 do |
pankso@7 | 68 if ! grep -q ^${pkg}$ $list; then |
pankso@7 | 69 echo "$pkg" >> $list |
pankso@7 | 70 fi |
pankso@7 | 71 done ;; |
pankso@7 | 72 *\ rm\ *) |
pankso@7 | 73 cmdline=$(echo ${QUERY_STRING#pkg=} | sed s'/&/ /g') |
pankso@7 | 74 cmdline=${cmdline%id=*} |
pankso@7 | 75 pkgs=$(echo $cmdline | sed -e s'/+/ /g' -e s'/pkg=//g' -e s/$cmd//) |
pankso@7 | 76 for pkg in $pkgs |
pankso@7 | 77 do |
pankso@7 | 78 sed -i "/^${pkg}$/"d $list |
pankso@7 | 79 done ;; |
pankso@7 | 80 *) |
pankso@7 | 81 # No space in flavor name please. |
pankso@7 | 82 flavor=$(echo $flavor | sed s'/ //'g) |
pankso@7 | 83 # Javascript can be disable in browser. |
pankso@7 | 84 [ ! "$flavor" ] && echo "Missing flavor name" && exit 0 |
pankso@7 | 85 [ ! "$mail" ] && echo "Missing email address" && exit 0 |
pankso@7 | 86 [ ! "$skel" ] && echo "Missing SliTaz skeleton" && exit 0 |
pankso@7 | 87 [ ! "$desc" ] && echo "Missing short desciption" && exit 0 |
pankso@7 | 88 mkdir -p $tmpdir/slitaz-$id |
pankso@7 | 89 cp -f $cache/packages.$skel $list |
pankso@7 | 90 echo "Receipt created : $(date '+%Y-%m-%d %H:%M')" > $log |
pankso@7 | 91 empty_receipt |
pankso@7 | 92 sed -i \ |
pankso@7 | 93 -e s"/FLAVOR=.*/FLAVOR=\"slitaz-$flavor\"/" \ |
pankso@7 | 94 -e s"/MAINTAINER=.*/MAINTAINER=\"$mail\"/" \ |
pankso@7 | 95 -e s"/SKEL=.*/SKEL=\"$skel\"/" \ |
pankso@7 | 96 -e s"/SHORT_DESC=.*/SHORT_DESC=\"$desc\"/" \ |
pankso@7 | 97 -e s"/ID=.*/ID=\"$id\"/" $tmpdir/slitaz-$id/receipt ;; |
pankso@7 | 98 esac |
pankso@7 | 99 |
pankso@7 | 100 # |
pankso@7 | 101 # Source the receipt and display page. |
pankso@7 | 102 # |
pankso@7 | 103 . $tmpdir/slitaz-$id/receipt |
pankso@7 | 104 |
pankso@7 | 105 nb=$(cat $list | wc -l) |
pankso@7 | 106 cat << EOT |
pankso@7 | 107 <h2>Packages ($nb)</h2> |
pankso@7 | 108 |
pankso@7 | 109 <form method="get" action="pkgs.cgi"> |
pankso@7 | 110 <table> |
pankso@7 | 111 <tbody> |
pankso@7 | 112 $(list_pkgs) |
pankso@7 | 113 </tbody> |
pankso@7 | 114 </table> |
pankso@7 | 115 <div> |
pankso@7 | 116 <input type="hidden" name="id" value="$id" /> |
pankso@7 | 117 <input type="submit" name="rm" value="$(gettext "Remove package(s)")"> |
pankso@7 | 118 </form> |
pankso@7 | 119 |
pankso@7 | 120 <form method="get" action="pkgs.cgi" style="float: right;"> |
pankso@7 | 121 <input type="text" name="add" /> |
pankso@7 | 122 <input type="hidden" name="id" value="$id" /> |
pankso@7 | 123 <input type="submit" name="pkgs" value="$(gettext "Add package(s)")"> |
pankso@7 | 124 </form> |
pankso@7 | 125 |
pankso@7 | 126 <pre> |
pankso@7 | 127 Uniq ID : $id |
pankso@7 | 128 Flavor : $FLAVOR |
pankso@7 | 129 Short desc : $SHORT_DESC |
pankso@7 | 130 </pre> |
pankso@7 | 131 <div class="next"> |
pankso@7 | 132 <form method="get" action="rootfs.cgi"> |
pankso@7 | 133 <input type="hidden" name="id" value="$id" /> |
pankso@7 | 134 <input type="submit" value="$(gettext "Continue")"> |
pankso@7 | 135 </form> |
pankso@7 | 136 </div> |
pankso@7 | 137 EOT |
pankso@7 | 138 |
pankso@7 | 139 # HTML footer. |
pankso@7 | 140 cat lib/footer.html |
pankso@7 | 141 |
pankso@7 | 142 exit 0 |