summaryrefslogtreecommitdiffstats
path: root/git-synk
diff options
context:
space:
mode:
Diffstat (limited to 'git-synk')
-rwxr-xr-xgit-synk33
1 files changed, 22 insertions, 11 deletions
diff --git a/git-synk b/git-synk
index 7460fc4..71bd858 100755
--- a/git-synk
+++ b/git-synk
@@ -28,6 +28,14 @@ PURPLE="\033[0;35m"
CYAN="\033[0;36m"
YELLOW="\033[1;33m"
+function success() {
+ echo -e "$1${GREEN}OK${RESET}"
+}
+
+function fail() {
+ echo -e "${RED}$1 ${RESET}${CYAN}leave${RESET}\n" && cd ..
+}
+
echo -e "remote:${YELLOW}${GIT_REMOTE}${RESET}:${PURPLE}${GIT_BRANCH}${RESET} USE_STASH=${RED}${USE_STASH}${RESET}"
for gitdir in ${GIT_DIR}; do
echo -e "enter ${BROWN}${gitdir}${RESET}" && cd ${gitdir} || return 1
@@ -36,41 +44,44 @@ for gitdir in ${GIT_DIR}; do
[ -d ${dir} ] && [ -e ${dir}/.git/config ] || continue
# SEARCH REMOTE
echo -e " enter ${BROWN}${dir}${RESET}" && cd $dir || exit 1
- git remote show ${GIT_REMOTE} >/dev/null 2>&1
+ echo -ne " ${CYAN}search remote${RESET}: ${YELLOW}${GIT_REMOTE}${RESET} ... " && \
+ git remote show ${GIT_REMOTE} >/dev/null 2>&1
if [ $? -ne 0 ]; then
- echo -e " ${RED}${GIT_REMOTE} remote not found ${RESET}" && cd .. && continue
+ fail "remote not found" && continue
fi
+ success
# CHECKOUT
- echo -ne " ${CYAN}checkout $YELLOW$GIT_BRANCH$RESET ... " && git branch | grep -q -e " ${GIT_BRANCH}\$" && git checkout -q ${GIT_BRANCH} 2>/dev/null && echo -e "${GREEN}OK${RESET}"
+ echo -ne " ${CYAN}checkout branch $YELLOW$GIT_BRANCH$RESET ... " && \
+ git branch | grep -q -e " ${GIT_BRANCH}\$" && git checkout -q ${GIT_BRANCH} 2>/dev/null && success
if [ $? -ne 0 ]; then
- echo -e "${RED}KO${RESET}" && cd .. && continue
+ fail "KO" && continue
fi
# GC + CLEAN
- echo -ne " ${CYAN}clean$RESET ... " && git prune && git gc --quiet && git repack >/dev/null && git diff --quiet && echo -e "${GREEN}OK${RESET}"
+ echo -ne " ${CYAN}clean$RESET ... " && git prune && git gc --quiet && git repack >/dev/null && git diff --quiet && success
if [ $? -ne 0 ]; then
if [ "$action" = "push" ]; then
- echo -e "dirty but ${GREEN}OK${RESET}"
+ success "dirty but "
elif [ $USE_STASH -eq 1 ]; then
STASH=1
echo -e "${RED}head is not clean, ${CYAN}git stash save${RESET}" && git stash save -q
else
- echo -e "${RED}head is not clean, USE_STASH=0 ... ${CYAN}leave${RESET}\n" && cd .. && continue
+ fail "head is not clean, USE_STASH=0 ... " && continue
fi
fi
# PULL
if [ "$action" != "push" ] ; then
echo -ne " ${CYAN}pull${RESET}: ${YELLOW}${GIT_REMOTE}${RESET}:${PURPLE}${GIT_BRANCH}${RESET} ... " && \
- git pull -q ${GIT_REMOTE} ${GIT_BRANCH} && echo -e "${GREEN}OK${RESET}"
+ git pull -q ${GIT_REMOTE} ${GIT_BRANCH} && success
if [ $? -ne 0 ]; then
- echo -e "${RED}KO${RESET}" && cd .. && continue
+ fail "KO" && continue
fi
fi
# PUSH
if [ "$action" != "pull" ] ; then
echo -ne " ${CYAN}push${RESET}: ${YELLOW}${GIT_REMOTE}${RESET}:${PURPLE}${GIT_BRANCH}${RESET} ... " && \
- git push ${GIT_REMOTE} ${GIT_BRANCH} 2>/dev/null && echo -e "${GREEN}OK${RESET}"
+ git push ${GIT_REMOTE} ${GIT_BRANCH} 2>/dev/null && success
if [ $? -ne 0 ]; then
- echo -e "${RED}KO${RESET}" && cd .. && continue
+ fail "KO" && continue
fi
fi
if [ $STASH -eq 1 ]; then