mirror of
				https://github.com/msberends/AMR.git
				synced 2025-10-31 01:28:17 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			121 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| # ==================================================================== #
 | |
| # TITLE:                                                               #
 | |
| # AMR: An R Package for Working with Antimicrobial Resistance Data     #
 | |
| #                                                                      #
 | |
| # SOURCE CODE:                                                         #
 | |
| # https://github.com/msberends/AMR                                     #
 | |
| #                                                                      #
 | |
| # PLEASE CITE THIS SOFTWARE AS:                                        #
 | |
| # Berends MS, Luz CF, Friedrich AW, et al. (2022).                     #
 | |
| # AMR: An R Package for Working with Antimicrobial Resistance Data.    #
 | |
| # Journal of Statistical Software, 104(3), 1-31.                       #
 | |
| # https://doi.org/10.18637/jss.v104.i03                                #
 | |
| #                                                                      #
 | |
| # Developed at the University of Groningen and the University Medical  #
 | |
| # Center Groningen in The Netherlands, in collaboration with many      #
 | |
| # colleagues from around the world, see our website.                   #
 | |
| #                                                                      #
 | |
| # This R package is free software; you can freely use and distribute   #
 | |
| # it for both personal and commercial purposes under the terms of the  #
 | |
| # GNU General Public License version 2.0 (GNU GPL-2), as published by  #
 | |
| # the Free Software Foundation.                                        #
 | |
| # We created this package for both routine data analysis and academic  #
 | |
| # research and it was publicly released in the hope that it will be    #
 | |
| # useful, but it comes WITHOUT ANY WARRANTY OR LIABILITY.              #
 | |
| #                                                                      #
 | |
| # Visit our website for the full manual and a complete tutorial about  #
 | |
| # how to conduct AMR data analysis: https://amr-for-r.org              #
 | |
| # ==================================================================== #
 | |
| 
 | |
| # Check if commit should skip checks
 | |
| COMMIT_MSG_FILE=".git/COMMIT_EDITMSG"
 | |
| if [ -f "$COMMIT_MSG_FILE" ]; then
 | |
|   COMMIT_MSG=$(cat "$COMMIT_MSG_FILE")
 | |
|   if [[ "$COMMIT_MSG" =~ no-?checks?|no-?verify ]]; then
 | |
|     echo "Not running prehook 'pre-commit':"
 | |
|     echo "Commit message contains 'no-check' or 'no-verify'."
 | |
|     echo ""
 | |
|     exit 0
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| echo "Running prehook..."
 | |
| 
 | |
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | |
| # Run the R script and stage the modified files
 | |
| if command -v Rscript > /dev/null; then
 | |
|   if [ "$(Rscript -e 'cat(all(c('"'pkgload'"', '"'devtools'"', '"'dplyr'"') %in% rownames(installed.packages())))')" = "TRUE" ]; then
 | |
|     Rscript -e "source('data-raw/_pre_commit_checks.R')"
 | |
|     echo "- Adding changed files in ./data-raw and ./man to this commit"
 | |
|     git add data-raw/*
 | |
|     git add data/*
 | |
|     git add man/*
 | |
|     git add R/sysdata.rda
 | |
|     git add NAMESPACE
 | |
|   else
 | |
|     echo "- R package 'pkgload', 'devtools', or 'dplyr' not installed!"
 | |
|   fi
 | |
| else
 | |
|   echo "- R is not available on your system!"
 | |
| fi
 | |
| echo ""
 | |
| 
 | |
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | |
| echo "Updating semantic versioning and date..."
 | |
| 
 | |
| current_branch=$(git rev-parse --abbrev-ref HEAD)
 | |
| if [ "$current_branch" != "main" ]; then
 | |
|   echo "- Current branch is '$current_branch'; skipping version/date update (only runs on 'main')"
 | |
| else
 | |
|   # Version update logic begins here
 | |
|   
 | |
|   # 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//')
 | |
|   
 | |
|   # Assume main branch to be 'main' or 'master'
 | |
|   defaultbranch=$(git branch | cut -c 3- | grep -E '^master$|^main$')
 | |
|   if [ "$currenttag" = "" ]; then
 | |
|     currenttag="0.0.1"
 | |
|     currentcommit=$(git rev-list --count ${defaultbranch})
 | |
|     echo "- No git tags found, creating one in format 'v(x).(y).(z)' - currently ${currentcommit} previous commits in '${defaultbranch}'"
 | |
|   else
 | |
|     currentcommit=$(git rev-list --count ${currenttagfull}..${defaultbranch})
 | |
|     echo "- Latest tag is '${currenttagfull}', with ${currentcommit} previous commits in '${defaultbranch}'"
 | |
|   fi
 | |
|   
 | |
|   # Combine tag and commit number
 | |
|   currentversion="$currenttag.$((currentcommit + 9001))"
 | |
|   echo "- AMR pkg version set to ${currentversion}"
 | |
|   
 | |
|   # Update version number and date in DESCRIPTION
 | |
|   sed -i -- "s/^Version: .*/Version: ${currentversion}/" DESCRIPTION
 | |
|   sed -i -- "s/^Date: .*/Date: $(date '+%Y-%m-%d')/" DESCRIPTION
 | |
|   echo "- Updated version number and date in ./DESCRIPTION"
 | |
|   rm -f DESCRIPTION--
 | |
|   git add DESCRIPTION
 | |
|   
 | |
|   # Update version number in NEWS.md
 | |
|   if [ -e "NEWS.md" ]; then
 | |
|     sed -i -- "1s/.*/# AMR ${currentversion}/" NEWS.md
 | |
|     echo "- Updated version number in ./NEWS.md"
 | |
|     rm -f NEWS.md--
 | |
|     git add NEWS.md
 | |
|   else
 | |
|     echo "- No NEWS.md found!"
 | |
|   fi
 | |
|   echo ""
 | |
|   
 | |
|   # Save the version number for use in the commit-msg hook
 | |
|   echo "${currentversion}" > .git/commit_version.tmp
 | |
| fi
 | |
| 
 | |
| git add data-raw/*
 | |
| git add data/*
 | |
| git add -u
 | |
| 
 | |
| exit 0
 |