From: skeezix Date: Mon, 23 Feb 2009 23:04:02 +0000 (-0500) Subject: Fixed getopt in pnd_run.sh and eliminated unused var X-Git-Tag: Release-2010-05/1~209 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=156ced7b396a2b3a42718c18dbe0fd7017e6ac95;p=pandora-libraries.git Fixed getopt in pnd_run.sh and eliminated unused var --- diff --git a/lib/pnd_apps.c b/lib/pnd_apps.c index daf3dda..35b1565 100644 --- a/lib/pnd_apps.c +++ b/lib/pnd_apps.c @@ -10,7 +10,7 @@ unsigned char pnd_apps_exec ( char *pndrun, char *fullpath, char *unique_id, char *rel_exec, char *rel_startdir, unsigned int clockspeed ) { char *argv [ 20 ]; - int f, i; + int f; printf ( "Entering pnd_apps_exec\n" ); #if 0 @@ -40,6 +40,7 @@ unsigned char pnd_apps_exec ( char *pndrun, char *fullpath, char *unique_id, cha // debug #if 0 + int i; for ( i = 0; i < f; i++ ) { printf ( "exec's argv %u [ %s ]\n", i, argv [ i ] ); } diff --git a/testdata/scripts/pnd_run.sh b/testdata/scripts/pnd_run.sh index ce32ff3..b26ccf2 100755 --- a/testdata/scripts/pnd_run.sh +++ b/testdata/scripts/pnd_run.sh @@ -2,15 +2,13 @@ #input pnd_run.sh -p "/path/to/foobar.pnd" -e "exe" --a "arguments for exe" # -u to skip union mount -# -b to override basename -#output none +# -s startdir +# arguments can be inside -e, -a is optional -########################### FS NAMES NEED ADJUSTMENT ################# -#todo -# check if all vars are set to sensible values +############################# dont forget to remove the echos! ############################ # parse arguments -TEMP=`getopt -o p:e:a:b:u:: --long p-long,e-long:,a-long: -- "$@"` +TEMP=`getopt -o p:e:a:b:u::s: --long p-long,e-long:,a-long: -- "$@"` if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi @@ -23,6 +21,7 @@ while true ; do -e|--e-long) echo "exec set to \`$2'" ;EXENAME=$2;shift 2 ;; -u) echo "u set, no union pls!";UNION=1;shift 2 ;; -b) echo "BASENAME set to $2";BASENAME=$2;shift 2;; + -s) echo "startdir set to $2";STARTDIR=$2;shift 2;; -a|--a-long) case "$2" in "") echo "no arguments"; shift 2 ;; @@ -48,13 +47,13 @@ oCWD=$(pwd) #detect fs if [ $DFS = ISO ]; then - mntline="mount -o loop,exec,umask=777 $PND /mnt/pnd/$BASENAME" + mntline="mount -o loop,fmask=000 $PND /mnt/pnd/$BASENAME" echo "Filetype is $DFS" elif [ $DFS = Zip ]; then - mntline="fuse-zip $PND /mnt/pnd/$BASENAME -oro" #should be reight now + mntline="fuse-zip $PND /mnt/pnd/$BASENAME -o ro,fmask=000" echo "Filetype is $DFS" elif [ $DFS = directory ]; then - mntline="mount --bind -o ro $PND /mnt/pnd/$BASENAME" + mntline="mount --bind -o ro,fmask=000 $PND /mnt/pnd/$BASENAME" #we bind the folder, now it can be treated in a unified way ATENTION: -o ro doesnt work for --bind at least on 25, on 26 its possible using remount, may have changed on 27 echo "Filetype is $DFS" else @@ -63,54 +62,48 @@ else fi #create mountpoints -echo " -#will run: -# create mountpoints -" -if [ ! -d /mnt/pnd/$BASENAME ]; then -echo "mkdir -p /mnt/pnd/$BASENAME " -fi -if [ ! -d $MOUNTPOINT/appdata/$BASENAME ]; then -echo "mkdir -p $MOUNTPOINT/appdata/$BASENAME " -fi -if [ ! -d /mnt/utmp/$BASENAME ]; then -echo "mkdir -p /mnt/utmp/$BASENAME " -fi + +if [ ! -d /mnt/pnd/$BASENAME ]; then echo "mkdir -p /mnt/pnd/$BASENAME "; fi +if [ ! -d $MOUNTPOINT/appdata/$BASENAME ]; then echo "mkdir -p $MOUNTPOINT/appdata/$BASENAME "; fi +if [ ! -d /mnt/utmp/$BASENAME ]; then echo "mkdir -p /mnt/utmp/$BASENAME "; fi #mount if [ ! $UNION ] ; then + #is the union already mounted? if not mount evrything, else launch the stuff mount | grep "on /mnt/utmp/$BASENAME type" > /dev/null if [ ! $? -eq 0 ]; then - echo " + $mntline #mount the pnd/folder #mount -t unionfs -o exec,dirs\=$MOUNTPOINT/appdata/$BASENAME=rw:/mnt/pnd/$BASENAME=ro unionfs /mnt/utmp/$BASENAME #union mount #aufs, one of those should work, bit unsure. - mount -t aufs -o exec,umask=777,dirs\=$MOUNTPOINT/appdata/$BASENAME=rw:/mnt/pnd/$BASENAME=ro none /mnt/utmp/$BASENAME #aufs? + mount -t aufs -o exec,fmask=000,dirs\=$MOUNTPOINT/appdata/$BASENAME=rw:/mnt/pnd/$BASENAME=ro none /mnt/utmp/$BASENAME #aufs? #mount -t aufs -o exec,dirs\=$MOUNTPOINT/appdata/$BASENAME=rw:/mnt/pnd/$BASENAME=ro aufs /mnt/utmp/$BASENAME #aufs? - " + else echo "doh!" fi - echo " + #start app cd /mnt/utmp/$BASENAME + if [ $STARTDIR ]; then cd $STARTDIR; fi $EXENAME $ARGUMENTS - cd $oCWD #app exited - " + else -echo " + $mntline cd /mnt/pnd/$BASENAME + if [ $STARTDIR ]; then cd $STARTDIR; fi $EXENAME $ARGUMENTS - cd $oCWD -" fi -echo " + #clean up umount /mnt/utmp/$BASENAME -umount /mnt/pnd/$BASENAME -rmdir /mnt/pnd/$BASENAME -rmdir /mnt/utmp/$BASENAME -" +if [ $? -eq 0 ]; then + + umount /mnt/pnd/$BASENAME + rmdir /mnt/pnd/$BASENAME + rmdir /mnt/utmp/$BASENAME + +fi