From e751a136763fd4288e502d6b074f110f9e59ece3 Mon Sep 17 00:00:00 2001 From: Nicolas Boisselier Date: Wed, 9 Oct 2024 00:25:37 +0200 Subject: [PATCH] bin/nb-update --- bin/git-setup-hooks.sh | 2 +- bin/nb-repo-install | 47 ++++++++++++++++++++++++++++++++++++++++++ bin/nb-update | 42 +++++++++++++++++++++---------------- 3 files changed, 72 insertions(+), 19 deletions(-) create mode 100755 bin/nb-repo-install diff --git a/bin/git-setup-hooks.sh b/bin/git-setup-hooks.sh index 8debd5cf..405b288a 100755 --- a/bin/git-setup-hooks.sh +++ b/bin/git-setup-hooks.sh @@ -1,5 +1,5 @@ #!/bin/bash -# setup-hooks.sh +# git-setup-hooks.sh # Ensure this script is run from the root of the repository REPO_ROOT=$(git rev-parse --show-toplevel) diff --git a/bin/nb-repo-install b/bin/nb-repo-install new file mode 100755 index 00000000..63a6f121 --- /dev/null +++ b/bin/nb-repo-install @@ -0,0 +1,47 @@ +#!/bin/bash +################################################################################# +# +# nb-repo-install +# +################################################################################# + +# +# Checks and globals +# + +#exec echo $0 +#eval "ls -1 "$0" | awk '{print $3}'" +CURRENT_USER="$(whoami)" +FILE_USER="$(stat --format '%U' "$0")" +#if [ "$(whoami)" != "$(stat --format '%U' "$0")" ] +if [ "$CURRENT_USER" != "$FILE_USER" ] +then + echo "Wrong user: $CURRENT_USER != $FILE_USER" + #exec sudo -u "$FILE_USER" "$0" + #su "$FILE_USER" -c "$0" + exit -1 +fi +#[ -z "$UID" ] && UID=`id -u` +# NB 08.10.24 if [ "$UID" != "0" ] && echo "$NAME: please login as root." 1>&2 && exit 1 + +# Ensure this script is run from the root of the repository +REPO_ROOT="$(git rev-parse --show-toplevel)" +[ -n "$REPO_ROOT" ] || exit + +REPO_NAME="$(basename -s .git $(git remote get-url origin))" +[ -n "$REPO_NAME" ] || exit + +# +# Git hooks +# +echo ">git-setup-hooks.sh" +git-setup-hooks.sh | sed 's/^/ /' + +# +# *-install +# +if [ -x bin/$REPO_NAME-install ] +then + echo ">$REPO_NAME-install" + bin/$REPO_NAME-install | sed 's/^/ /' +fi diff --git a/bin/nb-update b/bin/nb-update index aa0f560f..40802a8e 100755 --- a/bin/nb-update +++ b/bin/nb-update @@ -150,15 +150,16 @@ for dir in $(nb_repos); do # NB 08.10.24 if [ 1 = 1 ] && ! exec_user $user git_conn_check; then if ! exec_user $user git_conn_check; then - echo - # NB 08.10.24 elif [ "$USER" = "$user" ]; then - # NB 08.10.24 bash -c "$cmd" - # NB 08.10.24 elif [ "$USER" = "root" ]; then - # NB 08.10.24 su - $user -c "$cmd" - # NB 08.10.24 else - # NB 08.10.24 echo "Wrong user current user=$USER repo user=$user" - # NB 08.10.24 false + continue + elif [ "$USER" = "$user" ]; then + bash -c "$cmd" + elif [ "$USER" = "root" ]; then + su - $user -c "$cmd" + else + echo "Wrong user current user=$USER repo user=$user" + false fi + echo ex_cmd=$? # @@ -172,17 +173,22 @@ for dir in $(nb_repos); do else cmd_root="true" - [ -x bin/$name-install ] && \ - cmd_root="$cmd_root && echo ' >$name-install' && (git-setup-hooks.sh;bin/$name-install)|sed 's/^/ /'" - if [ "$cmd_root" != "true" ]; then - # NB 08.10.24 eval "$cmd_root" - exec_user $user "$cmd_root" - ex_cmd_root=$? - if [ "$ex_cmd_root" -gt "0" ]; then - ex_repo=$ex_cmd_root - echo ">err $ex_cmd_root" - fi + exec_user $user "nb-repo-install" | sed 's/^/ /' + ex_cmd_root=$? + if [ "$ex_cmd_root" -gt "0" ]; then + ex_repo=$ex_cmd_root + echo ">err $ex_cmd_root" fi + # NB 08.10.24 [ -x bin/$name-install ] && \ + # NB 08.10.24 cmd_root="$cmd_root && echo ' >$name-install' && (git-setup-hooks.sh;bin/$name-install)|sed 's/^/ /'" + # NB 08.10.24 if [ "$cmd_root" != "true" ]; then + # NB 08.10.24 exec_user $user "$cmd_root" + # NB 08.10.24 ex_cmd_root=$? + # NB 08.10.24 if [ "$ex_cmd_root" -gt "0" ]; then + # NB 08.10.24 ex_repo=$ex_cmd_root + # NB 08.10.24 echo ">err $ex_cmd_root" + # NB 08.10.24 fi + # NB 08.10.24 fi fi -- 2.47.3