X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=blobdiff_plain;f=scripts%2Fenv;h=882b42a49ae44767ae78501dfa31145a48657c8e;hp=a1211fbde04933dbd2a1e4fb6389396ac5e1b26f;hb=80abe917b6630129d7cf5f6b882e530a0ca7d649;hpb=c8aaead5930c15eb157d0eb497197cd72e7edae1 diff --git a/scripts/env b/scripts/env index a1211fbde0..882b42a49a 100755 --- a/scripts/env +++ b/scripts/env @@ -103,6 +103,7 @@ env_diff() { env_init env_sync_data git diff --cached + env_link_config } env_save() { @@ -118,12 +119,12 @@ env_revert() { } env_ask_sync() { + env_sync_data LINES="$(env_diff | wc -l)" # implies env_init [ "$LINES" -gt 0 ] && { if ask_bool 1 "Do you want to save your changes"; then env_sync else - env_sync_data env_do_reset fi } @@ -148,21 +149,20 @@ env_clear() { env_delete() { local name="${1##*/}" + env_init [ -z "$name" ] && usage - [ -f "$envdir/.git/refs/heads/$name" ] || error "environment '$name' not found" branch="$(git branch | grep '^\* ' | awk '{print $2}')" - [ "$name" = "branch" ] && error "cannot delete the currently selected environment" + [ "$name" = "$branch" ] && error "cannot delete the currently selected environment" git branch -D "$name" } env_switch() { local name="${1##*/}" [ -z "$name" ] && usage - [ -f "$ENVDIR/.git/refs/heads/$name" ] || error "environment '$name' not found" env_init env_ask_sync - git checkout "$name" + git checkout "$name" || error "environment '$name' not found" env_link_config } @@ -192,7 +192,8 @@ env_new() { if [ -f "$BASEDIR/.config" -o -d "$BASEDIR/files" ]; then if ask_bool 1 "Do you want to keep your current config and files?"; then [ -d "$BASEDIR/files" -a \! -L "$BASEDIR/files" ] && { - mv "$BASEDIR/files/"* "$ENVDIR/" 2>/dev/null + mkdir -p "$ENVDIR/files" + mv "$BASEDIR/files/*" "$ENVDIR/files/" 2>/dev/null rmdir "$BASEDIR/files" } env_sync