SAS | Using Git and multi-repository environments
Inhaltsverzeichnis [Anzeigen]
Using Git Hooks
$ git config --global core.hooksPath .githooks
$ git config --global core.hooksPath .githooks
$ git config --global core.hooksPath .githooks
Anhang: .githooks
prepare-commit-msg
#!/bin/bash
#
COMMIT_MSG_FILE=$1
COMMIT_SOURCE=$2
SHA1=$3
branchPath=$(git symbolic-ref -q HEAD)
branchName=${branchPath##*/}
if [ -n "$branchName" ]; then
echo "branchName|(cat $1)" > $1
fi
#!/bin/bash
#
COMMIT_MSG_FILE=1COMMITSOURCE=2
SHA1=3branchPath=(git symbolic-ref -q HEAD)
branchName={branchPath##*/}
if [ -n "branchName" ]; then
echo "branchName|(cat 1)">1
fi
#!/bin/bash # COMMIT_MSG_FILE=$1 COMMIT_SOURCE=$2 SHA1=$3 branchPath=$(git symbolic-ref -q HEAD) branchName=${branchPath##*/} if [ -n "$branchName" ]; then echo "$branchName | $(cat $1)" > $1 fi
pre-commit
#!/bin/bash
#
_BRANCHPATH=$(git symbolic-ref -q HEAD)
_BRANCH=${_BRANCHPATH##*/}
_TIMESTAMP="$(date '+
LOG() {
if [[ "$GIT_COMMIT_DETAILED_LOGGING" == "YES" ]]; then
echo "LOG: $*"
fi
}
REPLACE()
{
local _TYP; _TYP="$1"; shift
local _TAG; _TAG="$1"; shift
local _WITH; _WITH="$1"; shift
local _FILE; _FILE="$1"; shift
case "$_TYP" in
SAS) #
perl -pi -e 's/(.*)(
;;
CUSTOMER) # /* __DEPLOY_TAG =
perl -pi -e 's/(\/\*\s*)('"__DEPLOY_$_TAG"'\s*=\s*)(.*)/{1}${2}
;;
*) LOG "Undefined typ '$TYP' for file $_FILE"
;;
esac
rm -f "${_FILE}.bak"
}
LOG "working on branch $_BRANCH"
for _FILE in $(git diff-index --name-status --cached HEAD | grep -v ^D | cut -c3-)
do
LOG "checking file $_FILE"
# Only examine known text files
if [[ "$_FILE" =~ [.](sas)$ ]]; then
LOG "working on file $_FILE"
REPLACE SAS TAG "$_BRANCH" "$_FILE"
REPLACE SAS TIMESTAMP "$_TIMESTAMP" "$_FILE"
fi
if [[ "$_FILE" =~ ^MA03 ]]; then
LOG "working on bihis-customer script $_FILE"
REPLACE CUSTOMER TAG "$_BRANCH" "$_FILE"
REPLACE CUSTOMER TIMESTAMP "$_TIMESTAMP" "$_FILE"
fi
done
#!/bin/bash
#
_BRANCHPATH=(gitsymbolic−ref−qHEAD)BRANCH={_BRANCHPATH##*/}
_TIMESTAMP="(date '+
LOG() {
if [[ "$GIT_COMMIT_DETAILED_LOGGING" == "YES" ]]; then
echo "LOG: $*"
fi
}
REPLACE()
{
local _TYP; _TYP="$1"; shift
local _TAG; _TAG="$1"; shift
local _WITH; _WITH="$1"; shift
local _FILE; _FILE="$1"; shift
case "$_TYP" in
SAS) #
perl -pi -e 's/(.*)(
;;
CUSTOMER) # /* __DEPLOY_TAG =
perl -pi -e 's/(\/\*\s*)('"__DEPLOY_$_TAG"'\s*=\s*)(.*$)/${1}${2}
;;
*) LOG "Undefined typ '$TYP' for file $_FILE"
;;
esac
rm -f "${_FILE}.bak"
}
LOG "working on branch_BRANCH" for _FILE in (gitdiff−index−−name−status−−cachedHEAD|grep−vD|cut−c3−)doLOG"checkingfile_FILE" # Only examine known text files if [[ "FILE"= [.](sas) ]]; then LOG "working on file FILE"REPLACESASTAG"_BRANCH" "FILE"REPLACESASTIMESTAMP"_TIMESTAMP" "FILE"fiif[["_FILE" =~ ^MA03 ]]; then LOG "working on bihis-customer script FILE"REPLACECUSTOMERTAG"_BRANCH" "FILE"REPLACECUSTOMERTIMESTAMP"_TIMESTAMP" "$_FILE" fi done
LOG() {
if [[ "$GIT_COMMIT_DETAILED_LOGGING" == "YES" ]]; then
echo "LOG: $*"
fi
}
REPLACE()
{
local _TYP; _TYP="$1"; shift
local _TAG; _TAG="$1"; shift
local _WITH; _WITH="$1"; shift
local _FILE; _FILE="$1"; shift
case "$_TYP" in
SAS) #
perl -pi -e 's/(.*)(
;;
CUSTOMER) # /* __DEPLOY_TAG =
perl -pi -e 's/(\/\*\s*)('"__DEPLOY_$_TAG"'\s*=\s*)(.*$)/${1}${2}
;;
*) LOG "Undefined typ '$TYP' for file $_FILE"
;;
esac
rm -f "${_FILE}.bak"
}
LOG "working on branch_BRANCH" for _FILE in (gitdiff−index−−name−status−−cachedHEAD|grep−vD|cut−c3−)doLOG"checkingfile_FILE" # Only examine known text files if [[ "FILE"= [.](sas) ]]; then LOG "working on file FILE"REPLACESASTAG"_BRANCH" "FILE"REPLACESASTIMESTAMP"_TIMESTAMP" "FILE"fiif[["_FILE" =~ ^MA03 ]]; then LOG "working on bihis-customer script FILE"REPLACECUSTOMERTAG"_BRANCH" "FILE"REPLACECUSTOMERTIMESTAMP"_TIMESTAMP" "$_FILE" fi done
#!/bin/bash # _BRANCHPATH=$(git symbolic-ref -q HEAD) _BRANCH=${_BRANCHPATH##*/} _TIMESTAMP="$(date '+ LOG() { if [[ "$GIT_COMMIT_DETAILED_LOGGING" == "YES" ]]; then echo "LOG: $*" fi } REPLACE() { local _TYP; _TYP="$1"; shift local _TAG; _TAG="$1"; shift local _WITH; _WITH="$1"; shift local _FILE; _FILE="$1"; shift case "$_TYP" in SAS) # perl -pi -e 's/(.*)( ;; CUSTOMER) # /* __DEPLOY_TAG = perl -pi -e 's/(\/\*\s*)('"__DEPLOY_$_TAG"'\s*=\s*)(.*$)/${1}${2} ;; *) LOG "Undefined typ '$TYP' for file $_FILE" ;; esac rm -f "${_FILE}.bak" } LOG "working on branch $_BRANCH" for _FILE in $(git diff-index --name-status --cached HEAD | grep -v ^D | cut -c3-) do LOG "checking file $_FILE" # Only examine known text files if [[ "$_FILE" =~ [.](sas)$ ]]; then LOG "working on file $_FILE" REPLACE SAS TAG "$_BRANCH" "$_FILE" REPLACE SAS TIMESTAMP "$_TIMESTAMP" "$_FILE" fi if [[ "$_FILE" =~ ^MA03 ]]; then LOG "working on bihis-customer script $_FILE" REPLACE CUSTOMER TAG "$_BRANCH" "$_FILE" REPLACE CUSTOMER TIMESTAMP "$_TIMESTAMP" "$_FILE" fi done