summaryrefslogtreecommitdiff
path: root/packages/nslu2-binary-only/unslung-rootfs
diff options
context:
space:
mode:
Diffstat (limited to 'packages/nslu2-binary-only/unslung-rootfs')
-rwxr-xr-xpackages/nslu2-binary-only/unslung-rootfs/rc.bootdisk39
1 files changed, 34 insertions, 5 deletions
diff --git a/packages/nslu2-binary-only/unslung-rootfs/rc.bootdisk b/packages/nslu2-binary-only/unslung-rootfs/rc.bootdisk
index 3055c1a6c4..c83881a333 100755
--- a/packages/nslu2-binary-only/unslung-rootfs/rc.bootdisk
+++ b/packages/nslu2-binary-only/unslung-rootfs/rc.bootdisk
@@ -1,5 +1,8 @@
#!/bin/sh
+# If the nobootdisk flag is set, exit.
+if ( [ -f /.nobootdisk ] ) ; then return 0 ; fi
+
# If we're not booting from flash, exit.
i=`grep "/dev/root / jffs2" /proc/mounts`
if ( [ -z "$i" ] ) ; then return 0 ; fi
@@ -12,30 +15,56 @@ echo "====> real_hostname is $real_hostname"
# but don't duplicate
if ( [ "$linksys_hostname" = `hostname` ] ) ; then linksys_hostname= ; fi
-if ( [ "$real_hostname" = "unslung" ] ) ; then real_hostname= ; fi
+if ( [ "$real_hostname" = "default" ] ) ; then real_hostname= ; fi
# Search all FAT/NTFS filesystem in order.
# (heavily borrowed from the rc.start-optware script).
+
for i in /share/*/data/HDD_* ; do
+
+ # if the value of i is the string with the wildcards, no match occurred.
if ( [ "$i" = '/share/*/data/HDD_*' ] ) ; then break ; fi
+
echo "====> searching $i..."
- for j in $linksys_hostname $real_hostname "unslung" ; do
+
+ # Now check inside directories named for the Linksys hostname, the real
+ # hostname, and finally the name "default"...
+ for j in $linksys_hostname $real_hostname "default" ; do
+
echo "====> checking $i/bootdisk/$j ..."
- if ( [ -d "$i"/bootdisk/"$j" ] ) ; then
- for k in "$i"/bootdisk/"$j"/S??* ; do
+ if ( [ -d "$i/bootdisk/$j" ] ) ; then
+
+ # We have the correct subdirectory...
+ for k in "$i/bootdisk/$j"/S??* ; do
+
+ # Bail out if no match in that directory
+ if ( [ "$k" = "$i/bootdisk/$j"'/S??*' ] ) ; then break ; fi
+
echo "====> found $k ..."
[ ! -f "$k" ] && continue
- nocopy=`grep "^#unslung-nocopy" "$k"`
+
+ # Check to see if we need to copy or run in-place..
+ nocopy=`grep "^#bootdisk:nocopy" "$k"`
if ( [ -z "$nocopy" ] ) ; then
+
+ # copy and strip the MSDOS-style line endings, then execute.
echo "====> running copy: /tmp/tmpscript $k $i"
dos2unix -u <"$k" >/tmp/tmpscript
/bin/sh /tmp/tmpscript "$k" "$i"
rm -f /tmp/tmpscript
+
else
+
+ # execute in place
echo "====> running in-place $k $k $i"
/bin/sh "$k" "$k" "$i"
+
fi
+
done
+
fi
+
done
+
done