tazpanel rev 138
pkgs.cgi: add repository support
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sun Apr 17 00:34:06 2011 +0200 (2011-04-17) |
parents | 67fa759f1357 |
children | ec6dbf6b07e3 |
files | pkgs.cgi |
line diff
1.1 --- a/pkgs.cgi Sat Apr 16 15:00:24 2011 +0200 1.2 +++ b/pkgs.cgi Sun Apr 17 00:34:06 2011 +0200 1.3 @@ -46,7 +46,7 @@ 1.4 gettext "Last recharge : " 1.5 stat=`stat -c %y $LOCALSTATE/packages.list | \ 1.6 sed 's/\(:..\):.*/\1/' | awk '{print $1}'` 1.7 - mtime=`find /var/lib/tazpkg/packages.list -mtime +10` 1.8 + mtime=`find $LOCALSTATE/packages.list -mtime +10` 1.9 echo -n "$stat " 1.10 if [ "$mtime" ]; then 1.11 echo "(Older than 10 days)" 1.12 @@ -67,12 +67,22 @@ 1.13 1.14 # Parse mirrors list to be able to have an icon and remove link 1.15 list_mirrors() { 1.16 - cat $LOCALSTATE/mirrors | while read line 1.17 + while read line 1.18 do 1.19 cat << EOT 1.20 -<li><a href="$SCRIPT_NAME?config=rm-mirror=$line"><img 1.21 +<li><a href="$SCRIPT_NAME?admin=rm-mirror=$line&file=$(httpd -e $1)"><img 1.22 src="$IMAGES/clear.png" /></a><a href="$line">$line</a></li> 1.23 EOT 1.24 + done < $1 1.25 +} 1.26 + 1.27 +# Parse repositories list to be able to have an icon and remove link 1.28 +list_repos() { 1.29 + ls $LOCALSTATE/undigest 2> /dev/null | while read repo ; do 1.30 + cat <<EOT 1.31 + <li><a href="$SCRIPT_NAME?admin=rm-repo=$repo"> 1.32 + <img src="$IMAGES/clear.png">$repo</a></li> 1.33 +EOT 1.34 done 1.35 } 1.36 1.37 @@ -556,11 +566,24 @@ 1.38 mirror=$(GET mirror) 1.39 case "$mirror" in 1.40 http://*|ftp://*) 1.41 - echo "$mirror" >> $LOCALSTATE/mirrors ;; 1.42 + echo "$mirror" >> $(GET file) ;; 1.43 esac ;; 1.44 rm-mirror=http://*|rm-mirror=ftp://*) 1.45 mirror=${cmd#rm-mirror=} 1.46 - sed -i -e "s@$mirror@@" -e '/^$/d' $LOCALSTATE/mirrors ;; 1.47 + sed -i -e "s@$mirror@@" -e '/^$/d' $(GET file) ;; 1.48 + add-repo) 1.49 + # Decode url 1.50 + mirror=$(GET mirror) 1.51 + repository=$LOCALSTATE/undigest/$(GET repository) 1.52 + case "$mirror" in 1.53 + http://*|ftp://*) 1.54 + mkdir -p $repository 1.55 + echo "$mirror" > $repository/mirror 1.56 + echo "$mirror" > $repository/mirrors ;; 1.57 + esac ;; 1.58 + rm-repo=*) 1.59 + repository=${cmd#rm-repo=} 1.60 + rm -rf $LOCALSTATE/undigest/$repository ;; 1.61 esac 1.62 cache_files=`find /var/cache/tazpkg -name *.tazpkg | wc -l` 1.63 cache_size=`du -sh /var/cache/tazpkg` 1.64 @@ -629,16 +652,41 @@ 1.65 </div> 1.66 1.67 <h3>`gettext "Current mirror list"`</h3> 1.68 +EOT 1.69 + for i in $LOCALSTATE/mirrors $LOCALSTATE/undigest/*/mirrors; do 1.70 + echo '<div class="box">' 1.71 + [ -s $i ] || continue 1.72 + [ $i != $LOCALSTATE/mirrors ] && 1.73 + echo "<h4>Repository: $(dirname $i)</h4>" 1.74 + echo "<ul>" 1.75 + list_mirrors $i 1.76 + echo "</ul>" 1.77 + cat << EOT 1.78 +</div> 1.79 +<form method="get" action="$SCRIPT_NAME"> 1.80 + <p> 1.81 + <input type="hidden" name="admin" value="add-mirror" /> 1.82 + <input type="hidden" name="file" value="$i" /> 1.83 + <input type="text" name="mirror" size="60"> 1.84 + <input type="submit" value="Add mirror" /> 1.85 + </p> 1.86 +</form> 1.87 +EOT 1.88 + done 1.89 + cat << EOT 1.90 +<h3>`gettext "Private repositories"`</h3> 1.91 <div class="box"> 1.92 <ul> 1.93 - `list_mirrors` 1.94 + $(list_repos) 1.95 </ul> 1.96 </div> 1.97 <form method="get" action="$SCRIPT_NAME"> 1.98 <p> 1.99 - <input type="hidden" name="config" value="add-mirror" /> 1.100 - <input type="text" name="mirror" size="60"> 1.101 - <input type="submit" value="Add mirror" /> 1.102 + <input type="hidden" name="admin" value="add-repo" /> 1.103 + Name <input type="text" name="repository" size="10"> 1.104 + mirror 1.105 + <input type="text" name="mirror" value="http://" size="50"> 1.106 + <input type="submit" value="Add repository" /> 1.107 </p> 1.108 </form> 1.109 EOT