Re: Little redesign of package files for 1.3
"Jan Niklas Hasse" <[email protected]>
| Newsgroups | gmane.comp.autopackage.devel |
|---|---|
| Message-ID | <[email protected]> |
On Sun, Jun 1, 2008 at 12:34 AM, Taj Morton <[email protected]> wrote: > It's so that stubs can use post-1.0 API. The setting of > AutopackageTarget determines if .template or .2.template is included. > .template should ALWAYS only use 1.0 API, because it's included when > AutopackageTarget: 1.0. .2 can use 1.2 API. Even if .2 can, it doesn't use 1.2 API, does it? I've attached a diff between the two files. The only difference I see are variable names are in capitals. --------------------------------------------------------------------- To unsubscribe, e-mail: autopackage-dev-unsubscribe-OfajU3CKLf1/[email protected] For additional commands, e-mail: autopackage-dev-help-OfajU3CKLf1/[email protected]
asd.diff
(text/x-diff, 8.5 KB)
--- stub.template 2008-06-08 16:05:11.000000000 +0200
+++ stub.2.template 2008-06-08 16:05:11.000000000 +0200
@@ -25,7 +25,6 @@
## END OF HEADER
unset CDPATH
-
if (( DEBUGLEVEL <= 0 )); then
function trace() { true; }
else
@@ -43,14 +42,15 @@
exit 1
fi
-if [ -z "$executed_from_directory" ]; then
- export executed_from_directory=$( pwd )
+if [ -z "$EXECUTED_FROM_DIRECTORY" ]; then
+ # this is public since 1.2
+ export EXECUTED_FROM_DIRECTORY=$( pwd )
fi
package_dir=`dirname "$0"`
package_dir=`cd "$package_dir" 2>/dev/null; pwd`
package_base=`basename "$0"`
-export package_filename="$package_dir/$package_base"
+export _package_filename="$package_dir/$package_base"
unset package_dir package_base
if [ -z "$AUTOPACKAGE_SKIP_MD5_CHECK" ]; then
@@ -58,7 +58,7 @@
if which md5sum >/dev/null; then
md5_sum_check=`tail --bytes=$data_size "$0" | md5sum | cut -b-32`;
if [[ "$md5_sum_check" != "$md5_sum" ]]; then
- red; echo "Error: Verifing archive integrity failed."; normal;
+ red; echo "Error: Verifying archive integrity failed."; normal;
echo "Generated MD5 checksum $md5_sum_check is different from";
echo "embedded MD5 checksum $md5_sum.";
echo
@@ -79,10 +79,6 @@
trace skipped md5 verification of data payload
fi
-if [[ "$TMP" == "" ]]; then
- export TMP=/tmp
-fi
-
# if group and user are the same and are not
# system uids then allow group writeable files
if [[ "`id -gn`" == "`id -un`" ]] && [ `id -u` -gt 99 ]; then
@@ -91,63 +87,65 @@
umask 022
fi
+export WORKING_DIRECTORY=""
+# this is public since 1.2
+
# use an existing working directory
-export working_dir=""
if [[ "$1" == "-w" ]]; then
shift
- export working_dir="$1"
- trace forced working directory to $working_dir
+ WORKING_DIRECTORY="$1"
+ trace forced working directory to $WORKING_DIRECTORY
shift
fi
# create a working directory
if [[ "$1" == "-x" ]] || [[ "$1" == "--extract" ]]; then
# extract mode - generate a directory name from the package name
- working_dir=`dirname "$0"`
- working_dir=`cd "$working_dir" 2>&-; pwd 2>&-`
+ WORKING_DIRECTORY=`dirname "$0"`
+ WORKING_DIRECTORY=`cd "$WORKING_DIRECTORY" 2>&-; pwd 2>&-`
suffix=`basename "$0" | sed s/\\.package$//ig`
- working_dir="$working_dir/$suffix"
- if [ ! -d "$working_dir" ]; then
- if ! mkdir "$working_dir" 2>&-; then
- working_dir="${TMP}/$suffix"
- if ! mkdir "$working_dir" 2>&-; then
- working_dir="/tmp/$suffix"
- if ! mkdir "$working_dir" 2>&-; then
- red; echo -n "Error: "; normal; echo "Cannot create directory $working_dir/$suffix ${TMP}/$suffix /tmp/$suffix.";
+ WORKING_DIRECTORY="$WORKING_DIRECTORY/$suffix"
+ if [ ! -d "$WORKING_DIRECTORY" ]; then
+ if ! mkdir "$WORKING_DIRECTORY" 2>&-; then
+ WORKING_DIRECTORY="${TMP}/$suffix"
+ if ! mkdir "$WORKING_DIRECTORY" 2>&-; then
+ WORKING_DIRECTORY="/tmp/$suffix"
+ if ! mkdir "$WORKING_DIRECTORY" 2>&-; then
+ red; echo -n "Error: "; normal; echo "Cannot create directory $WORKING_DIRECTORY/$suffix ${TMP}/$suffix /tmp/$suffix.";
fi
fi
fi
fi
unset suffix
-elif [ -z "$working_dir" ]; then
- # invoked by the user - setup the initial working space
- working_dir="${TMP}/autopackage.$RANDOM$$"
- if ! mkdir "$working_dir" 2>&-; then
- working_dir="$executed_from_directory/autopackage.$RANDOM$$"
- if ! mkdir "$working_dir" 2>&-; then
- working_dir="/tmp/autopackage.$RANDOM$$"
- if ! mkdir "$working_dir" 2>&-; then
- red; echo -n "Error: "; normal; echo "Cannot create temporary directory ${TMP}/autopackage.$RANDOM$$ $executed_from_directory/autopackage.$RANDOM$$ /tmp/autopackage.$RANDOM$$.";
+elif [ -z "$WORKING_DIRECTORY" ]; then
+ # setup working space
+ WORKING_DIRECTORY="${TMP}/autopackage.$RANDOM$$"
+ if ! mkdir "$WORKING_DIRECTORY" 2>&-; then
+ WORKING_DIRECTORY="$EXECUTED_FROM_DIRECTORY/autopackage.$RANDOM$$"
+ if ! mkdir "$WORKING_DIRECTORY" 2>&-; then
+ WORKING_DIRECTORY="/tmp/autopackage.$RANDOM$$"
+ if ! mkdir "$WORKING_DIRECTORY" 2>&-; then
+ red; echo -n "Error: "; normal; echo "Cannot create temporary directory ${TMP}/autopackage.$RANDOM$$ $EXECUTED_FROM_DIRECTORY/autopackage.$RANDOM$$ /tmp/autopackage.$RANDOM$$.";
exit
fi
fi
fi
- chmod -R 777 "$working_dir"
- trace created working directory: $working_dir
+ chmod -R 777 "$WORKING_DIRECTORY"
+ trace created working directory: $WORKING_DIRECTORY
fi
-export payload_dir="$working_dir/payload/%RootName%"
-export meta_dir="$working_dir/meta/%RootName%"
-mkdir -p "$payload_dir"
-chmod -R 777 "$payload_dir"
-trace created payload directory: $payload_dir
-mkdir -p "$meta_dir"
-chmod -R 777 "$meta_dir"
-trace created meta directory: $meta_dir
+export _payload_dir="$WORKING_DIRECTORY/payload/%RootName%"
+export _meta_dir="$WORKING_DIRECTORY/meta/%RootName%"
+mkdir -p "$_payload_dir"
+chmod -R 777 "$_payload_dir"
+trace created payload directory: $_payload_dir
+mkdir -p "$_meta_dir"
+chmod -R 777 "$_meta_dir"
+trace created meta directory: $_meta_dir
# separate metadata payload and extract into working directory
-if ! tail -n +$skip_lines "$0" | head --bytes=$meta_size | tar xvzm -C "$meta_dir" >/dev/null; then
+if ! tail -n +$skip_lines "$0" | head --bytes=$meta_size | tar xvzm -C "$_meta_dir" >/dev/null; then
red; echo -n "ERROR: "; normal; echo "Unable to extract the metadata payload. Check disk space or redownload.";
- rm -rf "$working_dir"
+ rm -rf "$WORKING_DIRECTORY"
exit 1
fi
trace extracted metadata payload
@@ -161,20 +159,19 @@
unset compression
trace set data payload filename: $payload_filename
-if ! tail --bytes=$data_size "$0" > "$payload_dir/$payload_filename"; then
+if ! tail --bytes=$data_size "$0" > "$_payload_dir/$payload_filename"; then
red; echo -n "ERROR: "; normal; echo "Unable to extract the data payload. Check disk space or redownload.";
- rm -rf "$working_dir"
+ rm -rf "$WORKING_DIRECTORY"
exit 1
fi
trace extracted data payload
-
case "$1" in
"-x" | "--extract" | "-d" | "--debug")
echo -n "Please wait: extracting files ... "
- pushd "$payload_dir" >/dev/null
+ pushd "$_payload_dir" >/dev/null
if [ -f "payload.tar.bz2" ]; then
- bzip2 -dc "payload.tar.bz2" | tar -xv -C "$working_dir" | ( while read a; do echo -n "."; done; echo; )
+ bzip2 -dc "payload.tar.bz2" | tar -xv -C "$WORKING_DIRECTORY" | ( while read a; do echo -n "."; done; echo; )
elif [ -f "payload.tar.lzma" ]; then
[ -e /etc/autopackage/config ] && source /etc/autopackage/config;
if [ -z "$autopackage_deny_user" ] || ! $autopackage_deny_user; then
@@ -185,7 +182,7 @@
echo -n "decompressing ... "
"$autopackage_prefix/libexec/autopackage/unlzma" "payload.tar.lzma" "payload.tar"
echo -n "extracting ..."
- tar -xv -C "$working_dir" <payload.tar | ( while read a; do echo -n "."; done; echo; )
+ tar -xv -C "$WORKING_DIRECTORY" <payload.tar | ( while read a; do echo -n "."; done; echo; )
else
echo
echo "----------"
@@ -198,24 +195,25 @@
else
echo
echo "----------"
- red; echo -n "Error: "; normal; echo "The payload '$payload_dir/$payload_filename' was not found."
+ red; echo -n "Error: "; normal; echo "The payload '$_payload_dir/$payload_filename' was not found."
echo "----------"
fi
popd >/dev/null
echo
- echo "Files have been extracted to '$working_dir'."
+ echo "Files have been extracted to '$WORKING_DIRECTORY'."
echo
if [[ "$1" == "-x" ]] || [[ "$1" == "--extract" ]]; then
exit 0;
fi
- cd "$working_dir"
+ cd "$WORKING_DIRECTORY"
+ export _autopackage_execute_package="1" #allow apkg-installer to start installation
echo "Use 'exit' command to finish this session without installing package or execute:"
- echo " '$meta_dir/apkg-installer'"
+ echo " '$_meta_dir/apkg-installer'"
echo "to restart the package install."
echo
bash
cd ..
- rm -rf "$working_dir"
+ rm -rf "$WORKING_DIRECTORY"
exit 0
;;
@@ -227,7 +225,7 @@
exit 0;;
*) # default mode [ALL] - pass control to installer
- "$meta_dir/apkg-installer" "$@"
+ "$_meta_dir/apkg-installer" "$@"
exit $?
;;
esac