#!/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://msberends.github.io/AMR/ # # ==================================================================== # # 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:" 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')" currentpkg=$(Rscript -e "cat(pkgload::pkg_name())") echo "- Adding changed files in ./data-raw and ./man to this commit" git add data-raw/* git add man/* git add R/sysdata.rda git add NAMESPACE else echo "- R package 'pkgload', 'devtools', or 'dplyr' 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//') # 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 "- ${currentpkg} 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 if [ "$currentpkg" = "your" ]; then currentpkg="" fi sed -i -- "1s/.*/# ${currentpkg} ${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 exit 0