X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=scripts%2Fenv;h=5542b2017be31c4282ba4677aa10d50a6619d52b;hb=59bff10e17c95e907b6bbb48c26d36eee4af1e79;hp=1aee4b323b82b7565ef867aba36cb57152aa4b71;hpb=c714cb75102dcb4c52454db22d1a0269a9e07897;p=openwrt%2Fsvn-archive%2Farchive.git diff --git a/scripts/env b/scripts/env index 1aee4b323b..5542b2017b 100755 --- a/scripts/env +++ b/scripts/env @@ -1,6 +1,7 @@ #!/usr/bin/env bash BASEDIR="$PWD" ENVDIR="$PWD/env" +export GREP_OPTIONS= usage() { cat </dev/null >/dev/null + shopt -s dotglob + cp -a "$ENVDIR/files/"* "$BASEDIR/files" 2>/dev/null >/dev/null + shopt -u dotglob cp "$ENVDIR/.config" "$BASEDIR/" else rm -rf "$BASEDIR/files" "$BASEDIR/.config" @@ -150,7 +154,6 @@ 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" git branch -D "$name" @@ -159,11 +162,10 @@ env_delete() { 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 } @@ -191,9 +193,12 @@ env_new() { fi git checkout -b "$1" "$from" if [ -f "$BASEDIR/.config" -o -d "$BASEDIR/files" ]; then - if ask_bool 1 "Do you want to keep your current config and files?"; then + if ask_bool 1 "Do you want to start your configuration repository with the current configuration?"; then [ -d "$BASEDIR/files" -a \! -L "$BASEDIR/files" ] && { - mv "$BASEDIR/files/"* "$ENVDIR/" 2>/dev/null + mkdir -p "$ENVDIR/files" + shopt -s dotglob + mv "$BASEDIR/files/"* "$ENVDIR/files/" 2>/dev/null + shopt -u dotglob rmdir "$BASEDIR/files" } env_sync