diff --git a/dockerfiles/rubygems/Dockerfile b/dockerfiles/rubygems/Dockerfile new file mode 100644 index 0000000..6d13878 --- /dev/null +++ b/dockerfiles/rubygems/Dockerfile @@ -0,0 +1,4 @@ +FROM cybercode/alpine-ruby:2.3 +RUN gem install rubygems-mirror +ENV BUSYBOX=1 +volume /data diff --git a/rubygems.sh b/rubygems.sh index 7d98f23..46dcab9 100755 --- a/rubygems.sh +++ b/rubygems.sh @@ -6,6 +6,7 @@ CONF="$HOME/.gem/.mirrorrc" mkdir -p "$HOME/.gem" INIT=${INIT:-"0"} +BUSYBOX=${BUSYBOX:-"0"} if [ ! -d "$TUNASYNC_WORKING_DIR" ]; then mkdir -p $TUNASYNC_WORKING_DIR @@ -14,36 +15,29 @@ fi echo "Syncing to $TUNASYNC_WORKING_DIR" -if [[ $INIT == "0" ]]; then - - cat > $CONF << EOF +cat > $CONF << EOF --- - from: https://rubygems.org - to: ${TUNASYNC_WORKING_DIR} - parallelism: 10 - retries: 2 - delete: true - skiperror: true +to: ${TUNASYNC_WORKING_DIR} +parallelism: 10 +retries: 2 +delete: true +skiperror: true EOF - /usr/bin/timeout -s INT 7200 $GEM mirror - if [[ $? == 124 ]]; then - echo 'Sync timeout (/_\\)' - exit 1 +if [[ $INT == "0" ]]; then + if [[ $BUSYBOX == "0" ]]; then + timeout -t 7200 -s INT $GEM mirror -V + else + timeout -s INT 7200 $GEM mirror -V fi - else - - cat > $CONF << EOF ---- -- from: https://rubygems.org - to: ${TUNASYNC_WORKING_DIR} - parallelism: 10 - retries: 2 - delete: true - skiperror: true -EOF - - $GEM mirror - + $GEM mirror -V fi + +ret=$? +if [[ $ret == 124 ]]; then + echo 'Sync timeout (/_\\)' +fi + +exit $ret