Restore config after running scripts/env diff.
[openwrt/staging/mkresin.git] / scripts / env
index a1211fbde04933dbd2a1e4fb6389396ac5e1b26f..642a329c16f5fee39a01336e675ce957fbc52bb1 100755 (executable)
@@ -103,6 +103,7 @@ env_diff() {
        env_init
        env_sync_data
        git diff --cached
+    env_link_config
 }
 
 env_save() {
@@ -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
 }