#!/usr/bin/env bash # This file is part of MXE. See LICENSE.md for licensing information. # cron job running on our DigitalOcean server fetching and uploading # package tarballs to MXE Amazon S3 backup server. # This also acts as a CI to file issue on GitHub if download fails. # DigitalOcean server: mirror.mxe.cc # IP: 104.131.71.203 # v6: 2604:a880:800:10::156:f001 2604:a880:800:10::1 # # Admins: https://api.github.com/orgs/mxe/members # Keys: https://github.com/.keys or https://api.github.com/users//keys # # The script uses s3cmd to sync package tarballs: # http://s3tools.org/s3cmd # Manual switch to enable/disable issue filing on GitHub. # Useful to prevent the same issue from being filed multiple times file_issue=false # List of plugin dirs to include in downloads # Can't include all subdirs since some affect versions plugin_dirs=`./tools/plugins-with-additional-packages.sh` cd ~/mxe && git pull # Test downloading without falling back to S3 download server. # All log is stored in tmp-download-log. if ! ( \ cd ~/mxe && \ make download -k MXE_NO_BACKUP_DL=true MXE_VERBOSE=true \ MXE_PLUGIN_DIRS="$plugin_dirs" \ 2>&1 >tmp-download-log \ ) && $file_issue; then # If one or more download process fails, upload log to sprunge.us (a # pastebin-like text storage service). Store the returned URL in tmp-url. cat ~/mxe/tmp-download-log | curl -F 'sprunge=<-' http://sprunge.us \ >~/mxe/tmp-url # Use a fake "editor" to format the issue EDITOR=~/mxe/tools/fake-editor ghi open -L bug -- mxe/mxe fi cd ~/mxe && make clean-junk MXE_PLUGIN_DIRS="$plugin_dirs" s3cmd sync --acl-public ~/mxe/pkg/* s3://mxe-pkg/ rm -f ~/mxe/tmp-download-log ~/mxe/tmp-url