diff --git a/update.sh b/update.sh index c67a893..85a6dad 100755 --- a/update.sh +++ b/update.sh @@ -11,6 +11,8 @@ then exit 1 fi +[ -z "${VERBOSE}" ] && VERBOSE="0" + # @@ -19,7 +21,7 @@ fi # X=$(pwd) cd $1 || exit 1 -if [ ! -e make.sh -o ! -L scripts ] +if [ ! -e make.sh -o ! -L scripts/module-create.sh ] then echo "This doesn't look like an lw-build-system project to me." exit 1 @@ -28,7 +30,7 @@ fi PROJECT_ROOT=$(pwd) P=$(basename ${PROJECT_ROOT}) cd ${X} -cd $(basename $0) || exit 1 +cd $(dirname $0) || exit 1 SCRIPT_ROOT=$(pwd) source skel/scripts/functions.sh || exit 1 @@ -55,7 +57,11 @@ cleanup() { } do_cmd mkdir upgrade.tmp || cleanup -do_cmd ${SCRIPT_ROOT}/create.sh upgrade.tmp ${P} || cleanup +echo "DEBUG START" +ls +ls upgrade.tmp +echo "DEBUG END" +do_cmd_redir /dev/null ${SCRIPT_ROOT}/create.sh ${PROJECT_ROOT}/upgrade.tmp ${P} || cleanup for module in src/* do M=$(basename ${module}) @@ -77,13 +83,35 @@ do fi done -do_cmd_redir upgrade.diff \ - diff -ru --exclude='*.c' --exclude='*.cpp' --exclude='*.h' \ - ./ upgrade.tmp/${P} | grep -v '^Only in' || cleanup +diff -ru --exclude='*.c' --exclude='*.cpp' --exclude='*.h' \ + ./ upgrade.tmp/${P} \ + | grep -v '^Only in' \ + > upgrade.diff +if [ $? -eq 2 ] +then + print_failure "diff failed." + cleanup +fi + +case $? in +0) + print_success "Already up to date." + rm upgrade.diff + ;; + +1) + print_success "Upgrade complete. See upgrade.diff for diff." + ;; + +2) + print_failure "Diff failed." + cleanup + ;; +esac rm -rf upgrade.tmp -print_success "Upgrade complete. See upgrade.diff for diff." -if [ ! -z ${FAILED} ] + +if [ ! -z "${FAILED}" ] then print_failure "Upgrading of these modules failed: ${FAILED}" fi