mirror of
				https://github.com/msberends/AMR.git
				synced 2025-10-30 17:58:20 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			76 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| echo "Running pre-commit hook..."
 | |
| 
 | |
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | |
| if command -v Rscript > /dev/null; then
 | |
|   if [ "$(Rscript -e 'cat(all(c('"'pkgload'"', '"'devtools'"', '"'dplyr'"', '"'styler'"') %in% rownames(installed.packages())))')" = "TRUE" ]; then
 | |
|     Rscript -e "source('data-raw/_pre_commit_hook.R')"
 | |
|     currentpkg=`Rscript -e "cat(pkgload::pkg_name())"`
 | |
|     echo "-> Adding 'R/sysdata.rda' and all files in folders 'data-raw' and 'man' to this commit"
 | |
|     git add data-raw/*
 | |
|     git add man/*
 | |
|     git add R/sysdata.rda
 | |
|   else
 | |
|     echo "- R package 'pkgload', 'devtools', 'dplyr', or 'styler' not installed!"
 | |
|     currentpkg="your"
 | |
|   fi
 | |
| else
 | |
|   echo "- R is not available on your system!"
 | |
|   currentpkg="your"
 | |
| fi
 | |
| echo ""
 | |
| 
 | |
| 
 | |
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | |
| echo "Updating semantic versioning and date..."
 | |
| 
 | |
| # get tags from remote, and remove tags not on remote:
 | |
| git fetch origin --prune --prune-tags --quiet
 | |
| currenttagfull=`git describe --tags --abbrev=0`
 | |
| currenttag=`git describe --tags --abbrev=0 | sed 's/v//'`
 | |
| if [ "$currenttag" = "" ]; then
 | |
|   # there is no tag, so set tag to 0.0.1 and commit index to current count
 | |
|   echo "- no git tags found, create one in this format: 'v(x).(y).(z)'!"
 | |
|   currenttag="0.0.1"
 | |
|   currentcommit=`git rev-list --count HEAD`
 | |
| else
 | |
|   # there is a tag, so base version number on that
 | |
|   currentcommit=`git rev-list --count ${currenttagfull}..HEAD`
 | |
|   if (( "$currentcommit" == 0 )); then
 | |
|     # tag is new, so this must become the version number
 | |
|     currentversion="$currenttag"
 | |
|   fi
 | |
|   echo "- latest tag is '${currenttagfull}', with ${currentcommit} previous commits"
 | |
| fi
 | |
| if [ "$currentversion" = "" ]; then
 | |
|   # combine tag (e.g. 1.2.3) and commit number (like 5) increased by 9000 to indicate beta version
 | |
|   currentversion="$currenttag.$((currentcommit + 9001))" # results in e.g. 1.2.3.9005
 | |
| fi
 | |
| echo "- ${currentpkg} pkg version set to ${currentversion}"
 | |
| 
 | |
| # set version number and date to DESCRIPTION file
 | |
| sed -i -- "s/^Version: .*/Version: ${currentversion}/" DESCRIPTION
 | |
| sed -i -- "s/^Date: .*/Date: $(date '+%Y-%m-%d')/" DESCRIPTION
 | |
| echo "- updated DESCRIPTION"
 | |
| # remove leftover on macOS
 | |
| rm -f DESCRIPTION--
 | |
| # add to commit
 | |
| git add DESCRIPTION
 | |
| 
 | |
| # set version number to NEWS file
 | |
| if [ -e "NEWS.md" ]; then
 | |
|   if [ "$currentpkg" = "your" ]; then
 | |
|     currentpkg=""
 | |
|   fi
 | |
|   sed -i -- "1s/.*/# ${currentpkg} ${currentversion}/" NEWS.md
 | |
|   echo "- updated NEWS.md"
 | |
|   # remove leftover on macOS
 | |
|   rm -f NEWS.md--
 | |
|   # add to commit
 | |
|   git add NEWS.md
 | |
| else
 | |
|   echo "- no NEWS.md found!"
 | |
| fi
 | |
| echo ""
 |