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 \$?
}