Different way to manage the github upgrades.
This commit is contained in:
parent
4a4eec4589
commit
3c17fa3db0
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue