BASH 8
Xxgit-merge Guest on 8th July 2021 05:27:57 PM
  1. function xxgit-merge () {
  2.         _SCRIPT_NAME="xxgit-merge"
  3.         _SCRIPT_VERSION="1.0"
  4.     function log() {
  5.         local _BRed='\e[1;31m'    # Red
  6.         local _BYellow='\e[1;33m' # Yellow
  7.         local _BBlue='\e[1;34m'   # Blue
  8.         local _BWhite='\e[1;37m'  # White
  9.         local _NC="\e[m"          # Color Reset
  10.         local _message="$1"
  11.         local _level="$2"
  12.         local _nl="\n"
  13.         _timestamp=$(date +%d.%m.%Y-%d:%H:%M:%S-%Z)
  14.         case $(echo "$_level" | tr '[:upper:]' '[:lower:]') in
  15.         "info" | "information")
  16.             echo -ne "${_BWhite}[INFO][${_SCRIPT_NAME} ${_SCRIPT_VERSION}][${_timestamp}]: ${_message}${_NC}${_nl}"
  17.             ;;
  18.         "warn" | "warning")
  19.             echo -ne "${_BYellow}[WARN][${_SCRIPT_NAME} ${_SCRIPT_VERSION}][${_timestamp}]: ${_message}${_NC}${_nl}"
  20.             ;;
  21.         "err" | "error")
  22.             echo -ne "${_BRed}[ERR][${_SCRIPT_NAME} ${_SCRIPT_VERSION}][${_timestamp}]: ${_message}${_NC}${_nl}"
  23.             ;;
  24.         *)
  25.             echo -ne "${_BBlue}[UNKNOWN][${_SCRIPT_NAME} ${_SCRIPT_VERSION}][${_timestamp}]: ${_message}${_NC}${_nl}"
  26.             ;;
  27.         esac
  28.     }
  29.     function show_help() {
  30.                 log "Usage:" "info"
  31.                 log "xxgit-merge {FROMBRANCH} {TOBRANCH}" "info"
  32.                 return 0
  33.     }
  34.     _args="$#"
  35.     case "$_args" in
  36.         0)
  37.             show_help
  38.             ;;
  39.         1) echo "1"
  40.             log "Invalid number of parameters. Two are needed, only one provided." "err"
  41.                         return 1
  42.             ;;
  43.         2)
  44.                         _is_git=$(git rev-parse --is-inside-work-tree)
  45.                         if [ "$_is_git" != "true" ]; then
  46.                                 log "This folder '$(pwd)' does not seem to be git repository." "err"
  47.                                 return 1
  48.                         fi
  49.             log "Merging branch '$1' into '$2'" "info"
  50.             ;;
  51.         *)
  52.             log "Invalid number of parameters. Two are needed." "err"
  53.                         return 1
  54.             ;;
  55.     esac
  56.     FROMBRANCH="$1"
  57.     TOBRANCH="$2"
  58.     git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
  59.         log "Updating all branches..." "info"
  60.     git remote update
  61.     git fetch --all
  62.         log "Checking out $TOBRANCH..." "info"
  63.     git checkout "$TOBRANCH"
  64.         log "Merging $TOBRANCH..." "info"
  65.     git merge --no-ff --no-edit "$FROMBRANCH"
  66.     LASTSTATUS=$?
  67.     log "Status of 'git merge' was $LASTSTATUS" "info"
  68.     if [ $LASTSTATUS -ne 0 ]; then
  69.         log "The merge failed. Probbably there is an unresolved conflict." "err"
  70.         return 1
  71.     fi
  72.     git push
  73.     git push --tags
  74.         log "All done. Exiting..." "info"
  75. }

RSO cPaste е място за публикуване на код или текст за по-лесно отстраняване на грешки.

Влез или се Регистрай за да редактираш, изтриваш или преглеждаш хронология на твоето публикувано съдържание

Необработен текст

Влез или се Регистрирай за да редактираш или задържиш това съдържание.