Last active
July 25, 2018 10:13
-
-
Save spectrox/0670591f78bfcaeb7bcf64340ac29681 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Все команды рассчитаны на мак | |
function dc-clear-logs { | |
SERVICENAME=$1 | |
CONTAINER=$(docker-compose ps "$SERVICENAME" | grep "$SERVICENAME" | awk '{ print $1 }') | |
LOGPATH=$(docker inspect --format='{{.LogPath}}' "$CONTAINER") | |
echo 'echo "" > '"$LOGPATH" > ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty | |
} | |
function git-sync-branch { | |
MAINBRANCH=$(git rev-parse --abbrev-ref HEAD) | |
MAINPATH=$(pwd) | |
find . -type d -name .git -exec dirname {} \; | while read REPOPATH; do | |
cd "$REPOPATH" | |
if [ -n "$(git status --porcelain)" ]; then | |
echo "[WARNING] $REPOPATH have uncommitted changes, skipping" | |
cd "$MAINPATH" | |
continue | |
fi | |
HAVEMAINBRANCH=$(git rev-parse --verify --quiet "$MAINBRANCH" && git rev-parse --abbrev-ref HEAD) | |
CURRENTBRANCH=$(git rev-parse --abbrev-ref HEAD) | |
if [ "$HAVEMAINBRANCH" != "" ] && [ "$CURRENTBRANCH" != "$MAINBRANCH" ]; then | |
echo "[INFO] $REPOPATH changing branch from $CURRENTBRANCH" | |
git checkout --quiet "$MAINBRANCH" | |
fi | |
cd "$MAINPATH" | |
done | |
} | |
function git-check-branches { | |
MAINPATH=$(pwd) | |
HEADER="Found changes:" | |
find . -type d -name .git -exec dirname {} \; | while read REPOPATH; do | |
cd "$REPOPATH" | |
CHANGES=$(git status --porcelain) | |
if [ -n "$CHANGES" ]; then | |
if [ "$HEADER" != "" ]; then | |
echo "$HEADER" | |
HEADER="" | |
fi | |
echo " $REPOPATH" | |
echo "$CHANGES" | |
fi | |
cd "$MAINPATH" | |
done | |
} | |
# На примере неймспейса abc: | |
# Есть директория ~/dev/abc, в которой есть ~/dev/abc/package1 и ~/dev/abc/package2 | |
# Есть проект ~/dev/some-project. В нём есть ~/dev/some-project/vendor/abc/project1 | |
# | |
# Переходим в ~/dev/some-project и выполняем: | |
# composer-map-dir abc ../abc | |
# | |
# Это проставит симлинки: | |
# ~/dev/some-project/vendor/abc/package1 -> ~/dev/abc/package1 | |
# ~/dev/some-project/vendor/abc/package2 -> ~/dev/abc/package2 | |
# | |
# composer-map-dir <namespace> <local-directory-for-namespace> | |
# | |
# Для работы требуется: | |
# brew cask install osxfuse && brew install bindfs | |
function composer-map-dir { | |
NAMESPACE=$1 | |
REMOTE=$2 | |
if [ "$NAMESPACE" = "" ]; then | |
echo "Missing package namespace argument" | |
exit | |
fi | |
if [ "$REMOTE" = "" ]; then | |
echo "Missing mapping directory argument" | |
exit | |
fi | |
if [ ! -d "$REMOTE" ]; then | |
echo "Directory does not exist: $REMOTE" | |
exit | |
fi | |
REMOTE=$(realpath $REMOTE) | |
CURRENTDIR=$(pwd) | |
WORKINGDIR="$CURRENTDIR/vendor/$NAMESPACE" | |
for PACKAGE in $(find "$WORKINGDIR" -type d -mindepth 1 -maxdepth 1 | awk -F'/' '{ print $NF }'); do | |
if [ -d "$REMOTE/$PACKAGE" ]; then | |
rm -rf "$WORKINGDIR/$PACKAGE" | |
mkdir "$WORKINGDIR/$PACKAGE" | |
sudo bindfs "$REMOTE/$PACKAGE" "$WORKINGDIR/$PACKAGE" | |
fi | |
done | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment