Message ID | 20200101020146.21043-2-rosenp@gmail.com |
---|---|
State | Accepted |
Headers | show |
Series | None | expand |
On Wed, Jan 1, 2020 at 5:47 AM Paul Oranje <por@oranjevos.nl> wrote: > > Happy new year ! > > A minor question/nitpick, see below. > Regards > > > Op 1 jan. 2020, om 03:01 heeft Rosen Penev <rosenp@gmail.com> het volgende geschreven: > > > > The former are not well defined. > > > > Found with shellcheck. > [skip] > > > - [ -d "$BASEDIR/files" -a \! -L "$BASEDIR/files" ] && { > > + if [ -d "$BASEDIR/files" ] && [ \! -L "$BASEDIR/files" ]; then > > mkdir -p "$ENVDIR/files" > > shopt -s dotglob > > mv "$BASEDIR/files/"* "$ENVDIR/files/" 2>/dev/null > > shopt -u dotglob > > rmdir "$BASEDIR/files" > > - } > > + fi > Why has " ... && { ... }" syntax been replaced with "if ... then ... fi" ? > Both forms are used in the script anyway. It's clearer. One issue with replacing -a with && is the case of [ 1 -a 2 ] ||. [ 1 ] && [ 2 ] || has the wrong behaviour. It's not the case here but generally speaking it's more correct to replace with an if statement. Please also Reply to All next time. > > [skip]
diff --git a/scripts/env b/scripts/env index fd49e1c817..563f39c1cf 100755 --- a/scripts/env +++ b/scripts/env @@ -73,7 +73,7 @@ env_init() { } env_sync_data() { - [ \! -L "$BASEDIR/.config" -a -f "$BASEDIR/.config" ] && mv "$BASEDIR/.config" "$ENVDIR" + [ \! -L "$BASEDIR/.config" ] && [ -f "$BASEDIR/.config" ] && mv "$BASEDIR/.config" "$ENVDIR" git add . git add -u } @@ -185,7 +185,7 @@ env_new() { env_init 1 branch="$(git branch | grep '^\* ' | awk '{print $2}')" - if [ -n "$branch" -a "$branch" != "master" ]; then + if [ -n "$branch" ] && [ "$branch" != "master" ]; then env_ask_sync if ask_bool 0 "Do you want to clone the current environment?"; then from="$branch" @@ -193,15 +193,15 @@ env_new() { rm -f "$BASEDIR/.config" "$BASEDIR/files" fi git checkout -b "$1" "$from" - if [ -f "$BASEDIR/.config" -o -d "$BASEDIR/files" ]; then + if [ -f "$BASEDIR/.config" ] || [ -d "$BASEDIR/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" ] && { + if [ -d "$BASEDIR/files" ] && [ \! -L "$BASEDIR/files" ]; then mkdir -p "$ENVDIR/files" shopt -s dotglob mv "$BASEDIR/files/"* "$ENVDIR/files/" 2>/dev/null shopt -u dotglob rmdir "$BASEDIR/files" - } + fi env_sync else rm -rf "$BASEDIR/.config" "$BASEDIR/files"
The former are not well defined. Found with shellcheck. Signed-off-by: Rosen Penev <rosenp@gmail.com> --- scripts/env | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)