diff --git a/bashrc.sh b/bashrc.sh index 94571a3..99b07fe 100644 --- a/bashrc.sh +++ b/bashrc.sh @@ -77,6 +77,69 @@ function check-code { } alias code-check="check-code" +# Pulled from /me/env-ansible, need to make a shared library between it and Termux. +# Change a branch to point at another. +function load-branch { + rcvr="$1" # branch which we want to modify + base="$2" # branch with the changes we want + + if [[ "$rcvr" == "main" ]]; then + echo "*** ERROR: Are you nuts, fool!? Not main! Do it manually! ***" + return 1 + fi + + if [[ -z "$base" ]]; then + if [[ "$rcvr" == "prod" ]]; then + base="stage" + elif [[ "$rcvr" == "stage" ]]; then + base="dev" + else + echo "* Unsure which branch to use for '$rcvr'. Please specify." + return 1 + fi + echo "* Base was not specified, using '$base' for '$rcvr'." + else + echo "* Requested pointing '$rcvr' branch to '$base'." + fi + + echo -e "\n* Ensuring we are on base branch '$base'." && + git switch "$base" && + echo -e "\n* Changing pointer for '$rcvr' to '$base'." && + git branch -f "$rcvr" "$base" && + #echo -e "\n* Switching to branch '$rcvr'." && + #git switch "$rcvr" && + echo -e "\n* Forcing push on branch '$rcvr'." && + git push --force --set-upstream origin "$rcvr" && + echo -e "\n* Done! Displaying list of remote branches." && + git ls-remote --heads | sort + + if [[ "$base" != "dev" ]]; then + echo -e "\n* Checking if a dev branch exists." + git ls-remote --exit-code --heads origin dev + dev_exists="$?" + if [[ "$dev_exists" == 0 ]]; then + echo -e "\n* Switching back to dev." + git switch dev + elif [[ "$dev_exists" == 2 ]]; then + echo -e "\n* Switching back to main." + git switch main + else + echo "*** ERROR: Unknown status for dev_exists, '$dev_exists'. ***" + fi + fi + + echo -e "\n* Verifying which branch we're on." + git branch +} +alias load-prod="load-branch prod" +alias load-stage="load-branch stage" +alias rollback-prod="load-branch prod main" +alias rollback-stage="load-branch stage prod" +alias rollback-dev="load-branch dev stage" +alias reset-prod="load-branch prod main" +alias reset-stage="load-branch stage main" +alias reset-dev="load-branch dev main" + # Shortcuts for TRASH. export TRASH="$SS/TRASH" alias trash="cd $TRASH"