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&amp;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