From 3c17fa3db0cad3e6de6036359d3dc8c7b104633e Mon Sep 17 00:00:00 2001 From: Andrea Dell'Amico Date: Tue, 21 Sep 2021 17:16:43 +0200 Subject: [PATCH] Different way to manage the github upgrades. --- defaults/main.yml | 3 ++- templates/update_r_packages.sh.j2 | 19 ++++++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/defaults/main.yml b/defaults/main.yml index 273ea51..f5f90a3 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -43,7 +43,8 @@ r_package_updater_via_git: True r_package_updater_git_repo: 'https://code-repo.d4science.org/gCubeSystem/r-packages-list' r_packages_git_base_dir: /srv/r_updater r_packages_files_prefix: '' -r_packages_updater_also_upgrades_installed_packages: False +r_packages_updater_also_upgrades_installed_packages: True +r_packages_updater_for_github_only: True # They need to be flat text files # 1 package per line #r_debian_packages_list_url diff --git a/templates/update_r_packages.sh.j2 b/templates/update_r_packages.sh.j2 index 3cfa553..a9c12c5 100644 --- a/templates/update_r_packages.sh.j2 +++ b/templates/update_r_packages.sh.j2 @@ -37,6 +37,11 @@ R_PKGS_FILES_PREFIX="{{ r_packages_files_prefix }}" RSCRIPT_OPTIONS="--slave --no-site-file --no-init-file --no-save --no-restore-history" # In seconds. 60*60*6=21600s (6h) UPDATER_PROCESS_MAX_RUNTIME=21600 +{% if r_packages_updater_for_github_only %} +UPDATER_DEFAULT_BEHAVIOUR="github_only" +{% else %} +UPDATER_DEFAULT_BEHAVIOUR="everything" +{% endif %} # - debian packages list format: # one package per line DEB_PKGS_SKIP=0 @@ -250,7 +255,9 @@ function r_cran_pkgs() { mirror=$R_CRAN_MIRROR fi if [ "$ACTION" == "upgrade" ] ; then - Rscript $RSCRIPT_OPTIONS -e "install.packages(pkgs='$pkg', repos=c('$mirror/'));" + if [ "$UPDATER_DEFAULT_BEHAVIOUR" == "everything" ] ; then + Rscript $RSCRIPT_OPTIONS -e "install.packages(pkgs='$pkg', repos=c('$mirror/'));" + fi else Rscript $RSCRIPT_OPTIONS -e "if (! ('$pkg' %in% installed.packages()[,'Package'])) { install.packages(pkgs='$pkg', repos=c('$mirror/')); }" fi @@ -267,7 +274,9 @@ function r_cran_versioned_pkgs() { pkg=$( echo $l | cut -d : -f 1 ) version=$( echo $l | cut -d : -f 2 ) if [ "$ACTION" == "upgrade" ] ; then - Rscript $RSCRIPT_OPTIONS -e "require(devtools); install_version('$pkg', '$version', repos=c('$mirror/'));" + if [ "$UPDATER_DEFAULT_BEHAVIOUR" == "everything" ] ; then + Rscript $RSCRIPT_OPTIONS -e "require(devtools); install_version('$pkg', '$version', repos=c('$mirror/'));" + fi else Rscript $RSCRIPT_OPTIONS -e "if (! ('$pkg' %in% installed.packages()[,'Package'])) { require(devtools); install_version('$pkg', '$version', repos=c('$mirror/')); }" fi @@ -289,7 +298,7 @@ function r_github_pkgs() { else github_version_to_install="$github_pkg_version" fi - if [ "$ACTION" == "upgrade" -o "$R_PKGS_ALWAYS_UPGRADE_GITHUB" ] ; then + if [ "$ACTION" == "upgrade" ] ; then Rscript $RSCRIPT_OPTIONS -e "require(devtools); require(methods); require(jsonlite) ; package_to_install <- '$github_pkg' ; refs <- jsonlite::read_json(sprintf('https://api.github.com/repos/%s/releases', package_to_install)) ; ref_to_install <- '$github_pkg_version'; if(length(refs)>0) { ref_to_install <- refs[[1]][['tag_name']] } ; devtools::install_github(package_to_install, ref = ref_to_install, upgrade='never')" else @@ -311,14 +320,14 @@ init_env if [ $R_PKGS_FROM_GIT == 'True' ] ; then get_data_files_from_git if [ $GIT_UPDATE_STATUS -ne 1 -a "$ACTION" == "install" ] ; then - logger "update_r_packages: nothing new to install from git, exiting" + logger "update_r_packages: nothing new to install from git" cleanup exit 0 fi elif [ $R_PKGS_FROM_SVN == 'True' ] ; then get_data_files_from_svn if [ $SVN_UPDATE_STATUS -ne 0 -a "$ACTION" == "install" ] ; then - logger "update_r_packages: nothing new to install from SVN, exiting" + logger "update_r_packages: nothing new to install from SVN." cleanup exit 0 fi