On 2/28/06, Eddy Petrişor <[EMAIL PROTECTED]> wrote: > > I think you should introduce the test only if fetch script > > should wait. And in this case we have already a numeric argument. > > > > Done, but i am not sure if the generated code is the correct one. (I > just made the modifications and I can't test them.) > > Could you, please, test that the generated code is correct?
I managed to test it on MAC OS X with fink and found an interesting thing: not all regex implmentation work well enough to write something like: 'sed -e s/[, ]\+/ /g' so I changed this into "sed -e s/[, ]/ /g | tr -s ' '" I have also disabled (commented) the code that was supposed to calculate the size of the block because the obtained info was not used at all. I added the missing shift commands in the parameter interpretation in common.sh and added a TODO list for developemnt (this should be different than ENHANCEMENTS) The generated code looks good. Please apply the attached patch over your apt-zip-0.13.6 variant. -- Regards, EddyP ============================================= "Imagination is more important than knowledge" A.Einstein
diff -ruN apt-zip-0.13.6/TODO apt-zip-0.13.6.real_sleep_fix/TODO --- apt-zip-0.13.6/TODO Thu Jan 1 02:00:00 1970 +++ apt-zip-0.13.6.real_sleep_fix/TODO Mon Mar 6 09:43:56 2006 @@ -0,0 +1,10 @@ +Hey Emacs, this is -*- text -*- file. + +Open points that should be closed: +- document in the man page the newly added options: -S/--use-sleep +- document in the man page that apt-zip-list can now be ran as non-root +- use a consistent indenting schema (take care that method scripts are + dealt differently and should have mixed indenting in order to have nicely + indeneted generated scripts) + +* -- File last reviewed: 2006/03/06 diff -ruN apt-zip-0.13.6/apt-zip-list apt-zip-0.13.6.real_sleep_fix/apt-zip-list --- apt-zip-0.13.6/apt-zip-list Sat Feb 18 18:16:12 2006 +++ apt-zip-0.13.6.real_sleep_fix/apt-zip-list Mon Mar 6 09:37:00 2006 @@ -2,7 +2,8 @@ exithook() { - rm -f "$TMP" "$TEMP" "$BSTMP" + #rm -f "$TMP" "$TEMP" "$BSTMP" + rm -f "$TMP" "$TEMP" } SHAREDIR=$(cd $(dirname $0) && pwd) @@ -18,15 +19,15 @@ APTGETEXTRAOPTS="${APTGETEXTRAOPTS} -o Debug::NoLocking=true" # Find block size on zip -BSTMP=$(tempfile -d "$MEDIUM" -p aptzip) -if [ $? != 0 ] -then - error "Could not create temporary file" -fi - -echo "bs test" > "$BSTMP" -BLOCKSIZE=$(du -b "$BSTMP" | cut -f1) -rm "$BSTMP" +#BSTMP=$(tempfile -d "$MEDIUM" -p aptzip) +#if [ $? != 0 ] +#then +# error "Could not create temporary file" +#fi + +#echo "bs test" > "$BSTMP" +#BLOCKSIZE=$(du -b "$BSTMP" | cut -f1) +#rm "$BSTMP" #echo >&2 "Block size = $BLOCKSIZE" TMP=$(tempfile -p aptzip) @@ -64,6 +65,10 @@ #SIZE0=$(echo 'n' | apt-get ${APTGETEXTRAOPTS} dselect-upgrade | grep '^Need to get' | cut -d' ' -f4) #error "Size0 = $SIZE0 - Size = $SIZE blocks = $[ $SIZE * $BLOCKSIZE ]" + +#export the sleep command so it is visible in the method script +export SLEEPTIME +export SLEEPCMD=`eval "$SLEEPEVALCMD"` # Write the script SCRIPT="${MEDIUM}"/fetch-script-$METHOD-$(uname -n) diff -ruN apt-zip-0.13.6/common.sh apt-zip-0.13.6.real_sleep_fix/common.sh --- apt-zip-0.13.6/common.sh Tue Feb 7 01:50:50 2006 +++ apt-zip-0.13.6.real_sleep_fix/common.sh Mon Mar 6 09:50:04 2006 @@ -54,6 +54,7 @@ Overrides the name of the options file with the given FILENAME -f, --fix-broken Call apt-get with this flag -s, --skip-mount Do not mount a device on the dir specified by --medium + -S, --use-sleep=SEC Wait SEC seconds after each download EOF } @@ -99,7 +100,7 @@ } check_packages() { - PACKAGES=$(echo "$PACKAGES" | sed -e "s/[, ]\+/ /g") + PACKAGES=$(echo "$PACKAGES" | sed -e "s/[, ]/ /g" | tr -s ' ') } check_aptgetaction() { @@ -109,7 +110,9 @@ } az_loadconf() { - SLEEPTIME=0 + # make sure that we will have a valid command for sleep + SLEEPTIME=0 + SLEEPEVALCMD='true' [ -r $CONFFILE ] && . $CONFFILE METHOD=${METHOD-wget} MEDIUM=${MEDIUM-/ZIP} @@ -162,12 +165,17 @@ shift ;; --use-sleep=*) - SLEEPTIME="${1#--use-sleep=}" - ;; - --use-sleep) + SLEEPTIME="${1#--use-sleep=}" + SLEEPEVALCMD='echo "[ ! -z "\`type sleep\`" ] && sleep ${SLEEPTIME}"' + shift + ;; + --use-sleep|-S) if [ $# -lt 2 ]; then syntax_error "$1 needs an argument"; fi - SLEEPTIME=$2 - ;; + SLEEPTIME=$2 + SLEEPEVALCMD='echo "[ ! -z "\`type sleep\`" ] && sleep ${SLEEPTIME}"' + shift + shift + ;; --aptgetaction=*) APTGETACTION=${1#--aptgetaction=} shift @@ -251,9 +259,9 @@ # ensure known opts are set to 0 if not requested for kopt in $KNOWNOPTIONS do - eval export OPTION_${kopt}=0 + eval export OPTION_${kopt}=0 done - + for opt in $OPTIONS do # Warn if unknown option @@ -297,7 +305,7 @@ WAS_MOUNTED=1 if mount | grep "${MEDIUM}.*[(,]ro[,)]" >/dev/null then - error "$MEDIUM is mounted READ ONLY" + error "$MEDIUM is mounted READ ONLY" fi else WAS_MOUNTED=0 diff -ruN apt-zip-0.13.6/debian/Changelog apt-zip-0.13.6.real_sleep_fix/debian/Changelog --- apt-zip-0.13.6/debian/Changelog Wed Feb 22 09:13:20 2006 +++ apt-zip-0.13.6.real_sleep_fix/debian/Changelog Mon Mar 6 09:37:00 2006 @@ -11,6 +11,9 @@ * renamed TODO to ENHANCEMENTS * added TODO in order to store devlopment related info in it * added info regarding updates via modem and apt-zip (closes: #181042) + * Improved handling of the PACKAGES list not to depend on good + implementations of sed + * disabled BLOCKSIZE unused code -- Giacomo Catenazzi <[EMAIL PROTECTED]> Wed, 22 Feb 2006 07:54:33 +0100 diff -ruN apt-zip-0.13.6/methods/wget apt-zip-0.13.6.real_sleep_fix/methods/wget --- apt-zip-0.13.6/methods/wget Wed Feb 22 09:13:08 2006 +++ apt-zip-0.13.6.real_sleep_fix/methods/wget Mon Mar 6 09:37:00 2006 @@ -55,7 +55,7 @@ do_wget() { wget -t3 -nv -O \$2 \$1 - [ ! -z `type sleep` ] && sleep "${SLEEPTIME}" + ${SLEEPCMD} return \$? } @@ -80,7 +80,7 @@ if [ -r \$2 ] ; then echo "Already got \$2"; return 0; fi fi wget -nc -t3 -nv -O \$2 \$1 - [ ! -z `type sleep` ] && "sleep ${SLEEPTIME}" + ${SLEEPCMD} return \$? } @@ -90,7 +90,7 @@ do_wget() { if [ -r ../\$2 ] ; then echo "Already got \$2"; return 1; fi wget -t3 -nv -O \$2 \$1 - [ ! -z `type sleep` ] && sleep "${SLEEPTIME}" + ${SLEEPCMD} return \$? }