Set GIT_DIR correctly if it is not set (#15751)
* Set GIT_DIR correctly if it is not set * Expand out templates Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
		
					parent
					
						
							
								c25813182c
							
						
					
				
			
			
				commit
				
					
						8f0539c235
					
				
			
		
					 1 changed files with 47 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -22,9 +22,53 @@ import (
 | 
			
		|||
func getHookTemplates() (hookNames, hookTpls, giteaHookTpls []string) {
 | 
			
		||||
	hookNames = []string{"pre-receive", "update", "post-receive"}
 | 
			
		||||
	hookTpls = []string{
 | 
			
		||||
		fmt.Sprintf("#!/usr/bin/env %s\ndata=$(cat)\nexitcodes=\"\"\nhookname=$(basename $0)\nGIT_DIR=${GIT_DIR:-$(dirname $0)}\n\nfor hook in ${GIT_DIR}/hooks/${hookname}.d/*; do\ntest -x \"${hook}\" && test -f \"${hook}\" || continue\necho \"${data}\" | \"${hook}\"\nexitcodes=\"${exitcodes} $?\"\ndone\n\nfor i in ${exitcodes}; do\n[ ${i} -eq 0 ] || exit ${i}\ndone\n", setting.ScriptType),
 | 
			
		||||
		fmt.Sprintf("#!/usr/bin/env %s\nexitcodes=\"\"\nhookname=$(basename $0)\nGIT_DIR=${GIT_DIR:-$(dirname $0)}\n\nfor hook in ${GIT_DIR}/hooks/${hookname}.d/*; do\ntest -x \"${hook}\" && test -f \"${hook}\" || continue\n\"${hook}\" $1 $2 $3\nexitcodes=\"${exitcodes} $?\"\ndone\n\nfor i in ${exitcodes}; do\n[ ${i} -eq 0 ] || exit ${i}\ndone\n", setting.ScriptType),
 | 
			
		||||
		fmt.Sprintf("#!/usr/bin/env %s\ndata=$(cat)\nexitcodes=\"\"\nhookname=$(basename $0)\nGIT_DIR=${GIT_DIR:-$(dirname $0)}\n\nfor hook in ${GIT_DIR}/hooks/${hookname}.d/*; do\ntest -x \"${hook}\" && test -f \"${hook}\" || continue\necho \"${data}\" | \"${hook}\"\nexitcodes=\"${exitcodes} $?\"\ndone\n\nfor i in ${exitcodes}; do\n[ ${i} -eq 0 ] || exit ${i}\ndone\n", setting.ScriptType),
 | 
			
		||||
		fmt.Sprintf(`#!/usr/bin/env %s
 | 
			
		||||
data=$(cat)
 | 
			
		||||
exitcodes=""
 | 
			
		||||
hookname=$(basename $0)
 | 
			
		||||
GIT_DIR=${GIT_DIR:-$(dirname $0)/..}
 | 
			
		||||
 | 
			
		||||
for hook in ${GIT_DIR}/hooks/${hookname}.d/*; do
 | 
			
		||||
test -x "${hook}" && test -f "${hook}" || continue
 | 
			
		||||
echo "${data}" | "${hook}"
 | 
			
		||||
exitcodes="${exitcodes} $?"
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
for i in ${exitcodes}; do
 | 
			
		||||
[ ${i} -eq 0 ] || exit ${i}
 | 
			
		||||
done
 | 
			
		||||
`, setting.ScriptType),
 | 
			
		||||
		fmt.Sprintf(`#!/usr/bin/env %s
 | 
			
		||||
exitcodes=""
 | 
			
		||||
hookname=$(basename $0)
 | 
			
		||||
GIT_DIR=${GIT_DIR:-$(dirname $0/..)}
 | 
			
		||||
 | 
			
		||||
for hook in ${GIT_DIR}/hooks/${hookname}.d/*; do
 | 
			
		||||
test -x "${hook}" && test -f "${hook}" || continue
 | 
			
		||||
"${hook}" $1 $2 $3
 | 
			
		||||
exitcodes="${exitcodes} $?"
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
for i in ${exitcodes}; do
 | 
			
		||||
[ ${i} -eq 0 ] || exit ${i}
 | 
			
		||||
done
 | 
			
		||||
`, setting.ScriptType),
 | 
			
		||||
		fmt.Sprintf(`#!/usr/bin/env %s
 | 
			
		||||
data=$(cat)
 | 
			
		||||
exitcodes=""
 | 
			
		||||
hookname=$(basename $0)
 | 
			
		||||
GIT_DIR=${GIT_DIR:-$(dirname $0)/..}
 | 
			
		||||
 | 
			
		||||
for hook in ${GIT_DIR}/hooks/${hookname}.d/*; do
 | 
			
		||||
test -x "${hook}" && test -f "${hook}" || continue
 | 
			
		||||
echo "${data}" | "${hook}"
 | 
			
		||||
exitcodes="${exitcodes} $?"
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
for i in ${exitcodes}; do
 | 
			
		||||
[ ${i} -eq 0 ] || exit ${i}
 | 
			
		||||
done
 | 
			
		||||
`, setting.ScriptType),
 | 
			
		||||
	}
 | 
			
		||||
	giteaHookTpls = []string{
 | 
			
		||||
		fmt.Sprintf("#!/usr/bin/env %s\n%s hook --config=%s pre-receive\n", setting.ScriptType, util.ShellEscape(setting.AppPath), util.ShellEscape(setting.CustomConf)),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue