From bf865883121e36604f3bf2dcf2638adb3b8b0423 Mon Sep 17 00:00:00 2001 From: Chris Koeritz Date: Wed, 13 Mar 2019 13:00:19 -0400 Subject: [PATCH] really close for simple powerups it looks like this is working now for a powerup done in a project directory with no parameters, even if that project directory is a way deep subdirectory of a git repository rather than a stand-alone repository. had to stop before fully powered up due to blah blah but need to test out fully and then remove debug noises. version control library had a feature removed which was not being used and seemed dangerous anyhow. --- scripts/rev_control/version_control.sh | 23 +++-------------------- scripts/site_avenger/config/default.app | 18 ++++++++++++++---- scripts/site_avenger/shared_site_mgr.sh | 25 +++++++++++++++++++------ 3 files changed, 36 insertions(+), 30 deletions(-) diff --git a/scripts/rev_control/version_control.sh b/scripts/rev_control/version_control.sh index 737f314c..282dd4d9 100644 --- a/scripts/rev_control/version_control.sh +++ b/scripts/rev_control/version_control.sh @@ -11,23 +11,6 @@ source "$FEISTY_MEOW_SCRIPTS/tty/terminal_titler.sh" ############## -# check git version to see if we can use autostash. -# this appears to be an ubuntu issue, where xenial did not provide it even though the -# feature appeared in git 2.6 and xenial claims it has git version 2.7.4. eventually, -# this version test can go away. -gitvertest="$(git version | sed -e 's/git version [0-9]\.//' | sed -e 's/\.[0-9][0-9]*$//' )" -if (( $gitvertest >= 11 )); then - # auto-stash is not available until 2.6 for git, but ubuntu is misreporting or using a - # differing version number somehow. we are sure autostash was missing on ubuntu xenial - # with git 2.7.4 and it's definitely present in zesty with git at 2.11. -# PULL_ADDITION='--rebase --autostash' -#although initially attractive, above set of flags seems to lose history we don't want to -#lose. -PULL_ADDITION= -fi - -############## - # the maximum depth that the recursive functions will try to go below the starting directory. export MAX_DEPTH=5 @@ -362,7 +345,7 @@ function do_revctrl_careful_update() remote_branch_info=$(git ls-remote --heads origin $bran 2>/dev/null) if [ ! -z "$remote_branch_info" ]; then # we are pretty sure the remote branch does exist. - git pull --tags $PULL_ADDITION origin "$bran" | $TO_SPLITTER + git pull --tags origin "$bran" | $TO_SPLITTER promote_pipe_return 0 fi exit_on_error "git pull of remote branch: $bran" @@ -374,7 +357,7 @@ function do_revctrl_careful_update() # now pull down any changes in our own origin in the repo, to stay in synch # with any changes from others. - git pull --tags $PULL_ADDITION --all | $TO_SPLITTER + git pull --tags --all | $TO_SPLITTER #is the above really important when we did this branch already in the loop? #it does an --all, but is that effective or different? should we be doing that in above loop? promote_pipe_return 0 @@ -414,7 +397,7 @@ function do_revctrl_simple_update() elif [ -d ".git" ]; then if test_writeable ".git"; then $blatt_report - git pull --tags $PULL_ADDITION 2>&1 | grep -v "X11 forwarding request failed" | $TO_SPLITTER + git pull --tags 2>&1 | grep -v "X11 forwarding request failed" | $TO_SPLITTER promote_pipe_return 0 exit_on_error "git pull of origin" fi diff --git a/scripts/site_avenger/config/default.app b/scripts/site_avenger/config/default.app index e128f715..46dbd3a7 100644 --- a/scripts/site_avenger/config/default.app +++ b/scripts/site_avenger/config/default.app @@ -12,19 +12,29 @@ # basic information that is constant for all site avenger sites. # the top level of the user's application storage. -export BASE_APPLICATION_PATH="$HOME/apps" +if [ -z "$BASE_APPLICATION_PATH" ]; then + export BASE_APPLICATION_PATH="$HOME/apps" +fi # where the code should come from. -export DEFAULT_REPOSITORY_ROOT="git@github.com:kwentworth" +if [ -z "$DEFAULT_REPOSITORY_ROOT" ]; then + export DEFAULT_REPOSITORY_ROOT="git@github.com:kwentworth" +fi # we checkout the git repository to a directory underneath the app storage # directory named this (see below for "this"), if that directory name is found. # this is a saco designs infrastructure standard. -export CHECKOUT_DIR_NAME="avenger5" +if [ -z "$CHECKOUT_DIR_NAME" ]; then + export CHECKOUT_DIR_NAME="avenger5" +fi # the subfolder that the web browser will look for the site in, # underneath the application's specific path. -export STORAGE_SUFFIX="/public" +if [ -z "$STORAGE_SUFFIX" ]; then + export STORAGE_SUFFIX="/public" +fi #### +#hmmm: below does not have any protection to avoid overriding existing values, like above does. do we need more? + # constants within our cakelampvm machine. # in our scheme, the single IP address that all our domains map to. diff --git a/scripts/site_avenger/shared_site_mgr.sh b/scripts/site_avenger/shared_site_mgr.sh index d2f84e0f..cfc7c9a0 100644 --- a/scripts/site_avenger/shared_site_mgr.sh +++ b/scripts/site_avenger/shared_site_mgr.sh @@ -304,18 +304,25 @@ echo "$(date_stringer): $(var full_app_dir checkout_dirname repo_root repo_name) exit_on_error "Switching to our app dir '$full_app_dir'" local complete_path="$full_app_dir" - if [ ! -z "$checkout_dirname" ]; then +#hmmm: below code problematic for when we want a new git clone to show up! + if [ ! -z "$checkout_dirname" -a -d "$full_app_dir/$checkout_dirname" ]; then # make the full path using the non-empty checkout dir name. complete_path+="/$checkout_dirname" + else + # using the additional path component failed, so we reset that to see if + # we can still proceed normally. + unset checkout_dirname fi +echo set complete_path: $complete_path + # see if the checkout directory exits. the repo_found variable is set to # non-empty if we find it and it's a valid git repo. repo_found= - if [ -d "$full_app_dir" ]; then + if [ -d "$complete_path" ]; then # checkout directory exists, so let's check it. - pushd "$full_app_dir" &>/dev/null - exit_on_error "Switching to directory for check out: $full_app_dir" + pushd "$complete_path" &>/dev/null + exit_on_error "Switching to directory for check out: $complete_path" # ask for repository name (without .git). if git rev-parse --git-dir > /dev/null 2>&1; then @@ -326,7 +333,7 @@ echo "$(date_stringer): $(var full_app_dir checkout_dirname repo_root repo_name) # we don't consider the state of having the dir exist but the repo be wrong as good. if [ -z "$repo_found" ]; then echo "There is a problem; this folder is not a valid repository:" - echo " $full_app_dir" + echo " $complete_path" echo "This script cannot continue unless the git repository is valid." exit 1 fi @@ -335,14 +342,20 @@ echo "$(date_stringer): $(var full_app_dir checkout_dirname repo_root repo_name) if [ ! -z "$repo_found" ]; then # a repository was found, so update the version here and leave. + pushd "$complete_path" &>/dev/null + exit_on_error "Switching to directory for repo update: $complete_path" echo "Repository $repo_name exists. Updating it." - rgetem + git pull --tags --all exit_on_error "Recursive checkout on: $complete_path" + popd &>/dev/null else # clone the repo since it wasn't found. + pushd "$complete_path/.." &>/dev/null + exit_on_error "Switching to parent directory prior to new clone: $complete_path/.." echo "Cloning repository $repo_name now." git clone "$repo_root/$repo_name.git" $checkout_dirname exit_on_error "Git clone of repository: $repo_name" + popd &>/dev/null fi #unused? -- 2.34.1