#!/usr/bin/env bash set -e usage() { echo "usage: $0 -f -r -a " exit 1 } # parse options while getopts ":f::r::a:" opt; do case "${opt}" in f ) file=${OPTARG} ;; r ) repo="${OPTARG}" [[ "${repo}" == "bin" || "${repo}" == "bin-dev" ]] || usage ;; a ) arch=${OPTARG} ;; : ) echo "invalid option: ${OPTARG} requires an argument" 1>&2 exit 1 ;; \?) echo "invalid option: ${OPTARG}" 1>&2 exit 1 ;; esac done shift $((OPTIND-1)) if [ -z "${file}" ] || [ -z "${repo}" ] || [ -z "${arch}" ]; then usage fi # settings s3_bucket_repo="s3://falco-distribution/packages/${repo}/${arch}" cloudfront_path="/packages/${repo}/${arch}" # sign gpg --detach-sign --digest-algo SHA256 --armor ${file} # publish package=$(basename -- ${file}) echo "Publishing ${package} to ${s3_bucket_repo}..." aws s3 cp ${file} ${s3_bucket_repo}/${package} --acl public-read aws s3 cp ${file}.asc ${s3_bucket_repo}/${package}.asc --acl public-read aws cloudfront create-invalidation --distribution-id ${AWS_CLOUDFRONT_DIST_ID} --paths ${cloudfront_path}/${package} aws cloudfront create-invalidation --distribution-id ${AWS_CLOUDFRONT_DIST_ID} --paths ${cloudfront_path}/${package}.asc