diff options
Diffstat (limited to 'scripts/init-floppy')
-rwxr-xr-x | scripts/init-floppy | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/scripts/init-floppy b/scripts/init-floppy index 16e12915..9f5301d8 100755 --- a/scripts/init-floppy +++ b/scripts/init-floppy @@ -64,7 +64,7 @@ config_notice="\rSaving config... \c" config__error="\rError: Couldn't save config in $fd/config/config.boot" bind___notice="\rRedirecting config directory...\c" bind____error="\rError: redirect to floppy" -saved__notice="\rYour configuration was saved in: $fd/config/config.boot" +saved__notice="\rYour configuration directory was saved to: $fd/config" mkdir -p $fd @@ -92,16 +92,31 @@ echo "$mount__notice" /bin/mount /dev/fd0 $fd -t ext2 -o sync,noatime,noexec,nosuid,nodev &>/dev/null || \ failure "$mount___error" -/bin/mkdir $fd/config -/bin/chmod 777 $fd/config - -echo "$config_notice" -${vyatta_sbindir}/vyatta-save-config.pl $fd/config/config.boot &>/dev/null || \ - failure "$config__error" +# +# Check to make sure we have enough space to copy the config dir +# +fd_space_avail=`df -k $fd | tail -1 | awk '{ print $4 }'` +space_needed=`du -s ${vyatta_sysconfdir}/config | awk '{ print $1 }'` + +if [ $fd_space_avail -gt $space_needed ]; then + echo "$config_notice" + /bin/mkdir $fd/config + /usr/bin/find ${vyatta_sysconfdir}/config -maxdepth 1 -mindepth 1 \ + -exec /bin/cp '-a' '{}' "$fd/config" ';' + /bin/chgrp -R vyattacfg $fd/config + /bin/chmod -R 775 $fd/config +else + echo 'Not enough space to save current configuration directory' + failure "$config__error" +fi echo "$bind___notice" /bin/mount -o bind $fd/config ${vyatta_sysconfdir}/config &>/dev/null || \ failure "$bind____error" +# also, bind mount config directory to /config +/bin/mkdir -p /config +/bin/mount -o bind $fd/config /config &>/dev/null || \ + failure "$bind____error" echo "$saved__notice" |