Not only does the original suffer from re-computing the same value over
and over despite 'tmpfile' having been defined. This makes a maintenance
headache.
Worse, downloading files into /usr/lib* is VERBOTEN!! Options like
/var/{tmp,lib} are at least proper but it makes vastly more sense to put
the downloads in the TLD of the path we're installing to.
Even better would be a command line argument to specify the tmpfile location.
--- cloud-install-sys-tmplt.orig 2012-08-03 13:26:44.568709050 -0400
+++ cloud-install-sys-tmplt 2012-08-03 14:07:11.333716996 -0400
@@ -161,20 +161,20 @@
failed 5
fi
-tmpfile=$(dirname $0)/$localfile
+tmpfile=$mntpoint/$localfile
touch $tmpfile
if [ $? -ne 0 ]
then
- printf "Failed to create temporary file in directory $(dirname $0) --
is it read-only or full?\n"
+ printf "Failed to create temporary file in directory $(dirname
$tmpfile) -- is it read-only or full?\n"
failed 4
fi
destcap=$(df -P $destdir | awk '{print $4}' | tail -1 )
[ $destcap -lt $DISKSPACE ] && echo "Insufficient free disk space for
target folder $destdir: avail=${destcap}k req=${DISKSPACE}k" && failed 4
-localcap=$(df -P $(dirname $0) | awk '{print $4}' | tail -1 )
-[ $localcap -lt $DISKSPACE ] && echo "Insufficient free disk space for
local temporary folder $(dirname $0): avail=${localcap}k
req=${DISKSPACE}k" && failed 4
+localcap=$(df -P $(dirname $tmpfile) | awk '{print $4}' | tail -1 )
+[ $localcap -lt $DISKSPACE ] && echo "Insufficient free disk space for
local temporary folder $(dirname $tmpfile): avail=${localcap}k
req=${DISKSPACE}k" && failed 4
if [ "$uflag" == "1" ]
then
@@ -192,7 +192,7 @@
cp $tmpltimg $tmpfile
if [ $? -ne 0 ]
then
- printf "Failed to create temporary file in directory $(dirname $0) --
is it read-only or full?\n"
+ printf "Failed to create temporary file in directory $(dirname
$tmpfile) -- is it read-only or full?\n"
failed 6
fi
fi