feat: retreive commit scope
This commit is contained in:
		
							parent
							
								
									15b4e6c020
								
							
						
					
					
						commit
						00e0202f62
					
				
							
								
								
									
										53
									
								
								joj-repo
									
									
									
									
									
								
							
							
						
						
									
										53
									
								
								joj-repo
									
									
									
									
									
								
							|  | @ -1,8 +1,41 @@ | |||
| #!/bin/bash | ||||
| 
 | ||||
| COURSE=$(hostname) | ||||
| SEMESTER=${COURSE#*-} | ||||
| COURSE=${COURSE%-*} | ||||
| GITEA="ssh://git@focs.ji.sjtu.edu.cn:2222" | ||||
| ORG=${GITHUB_ACTION_REPOSITORY%/*} | ||||
| COURSE=${ORG/-*} | ||||
| 
 | ||||
| LXCHOST="tt@172.17.0.1" | ||||
| 
 | ||||
| 
 | ||||
| # | ||||
| # parse commit message | ||||
| # | ||||
| 
 | ||||
| parse_commit() { | ||||
| 
 | ||||
| 	message=$(git log -1 --pretty=format:%s ${GITHUB_WORKFLOW_SHA}) | ||||
| 
 | ||||
| 	# add empty scope if none provided, then split "type(scope): message" | ||||
| 	OLDIFS=$IFS; IFS=$'\n' | ||||
| 	commit=( $(sed 's/\(^[^(]*\):/\1( ):/g; s/\([^(]*\)(\?\([^)]*\))\?: \(.*\)/\1\n\2\n\3/g' <<< ${message}) ) | ||||
| 	IFS=$OLDIFS | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| # | ||||
| # gen  | ||||
| # | ||||
| 
 | ||||
| generate_json() { | ||||
| 
 | ||||
| 	parse_commit | ||||
| 	for i in ${commit[1]}; do  | ||||
| 		echo joj-conf-generator $HOME/.config/joj/$i | ||||
| 	done | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| # | ||||
| # initial repo/config setup | ||||
|  | @ -11,7 +44,7 @@ init() { | |||
| 
 | ||||
|         [ -d $COURSE-config ] && backup $COURSE-config | ||||
| 
 | ||||
|         git clone ssh://git@focs.ji.sjtu.edu.cn:2222/$COURSE-$SEMESTER/$COURSE-joj.git $COURSE-config | ||||
|         git clone $GITEA/$ORG/$COURSE-joj.git $COURSE-config | ||||
| 
 | ||||
|         cd $COURSE-config | ||||
| 
 | ||||
|  | @ -28,12 +61,12 @@ init() { | |||
| 
 | ||||
| # clone grading branch or create one + push readme | ||||
|         if [ "x$br" = "x1" ]; then | ||||
|                 git clone -b grading ssh://git@focs.ji.sjtu.edu.cn:2222/$COURSE-$SEMESTER/$COURSE-joj.git | ||||
|                 git clone -b grading $GITEA/$COURSE-$SEMESTER/$COURSE-joj.git | ||||
|                 cd $COURSE-joj | ||||
|                 git switch grading | ||||
|                 git pull | ||||
|         else | ||||
|                 git clone ssh://git@focs.ji.sjtu.edu.cn:2222/$COURSE-$SEMESTER/$COURSE-joj.git | ||||
|                 git clone $GITEA/$COURSE-$SEMESTER/$COURSE-joj.git | ||||
| 
 | ||||
|                 cd $COURSE-joj | ||||
|                 git switch --orphan grading | ||||
|  | @ -48,20 +81,22 @@ init() { | |||
| 
 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| # | ||||
| # update config repo + copy config files | ||||
| # | ||||
| update() { | ||||
| 
 | ||||
|         [ -d "$COURSE-joj" ] || ( echo "ERROR: init first!" 1>&2 && exit ) | ||||
|         cd $HOME/.cache/$COURSE-config | ||||
| 
 | ||||
|         git pull | ||||
| 
 | ||||
|         rsync -r ./$HOME/ $HOME | ||||
| #				genjson | ||||
| 
 | ||||
|         rsync -a ./$HOME/ $LXCHOST:$HOME | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| # | ||||
| # simple local backup | ||||
| # | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user