diff options
Diffstat (limited to 'lib/actions/dist.bash')
-rw-r--r-- | lib/actions/dist.bash | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/lib/actions/dist.bash b/lib/actions/dist.bash new file mode 100644 index 0000000..3b06b4f --- /dev/null +++ b/lib/actions/dist.bash @@ -0,0 +1,48 @@ +#!/usr/bin/env bash + +RSTAR_DEPS_BIN+=( + git + tar +) + +action() { + local version="${1:-$(date +%Y.%m)}" + WORKDIR="$BASEDIR/tmp/rakudo-star-$version" + + info "Creating distribution contents at $WORKDIR" + + cd -- "$BASEDIR" + + # Include files from this project + for file in $(git ls-files) + do + dist_include "/$file" + done + + # Include the sources of all components + for src in dist/src/* + do + dist_include "/$src" + done + + # Add a MANIFEST.txt + cd -- "$WORKDIR" + find . > MANIFEST.txt + + # Tar it all up into a distribution tarball + info "Creating tarball out of $WORKDIR" + + local tarball="$BASEDIR/dist/rakudo-star-$version.tar.gz" + + mkdir -p -- "$(dirname "$tarball")" + cd -- "$BASEDIR/tmp" + + tar czf "$tarball" "rakudo-star-$version" + + info "Distribution tarball available at $tarball" +} + +dist_include() { + mkdir -p -- "$(dirname "${WORKDIR}$1")" + cp -r -- "${BASEDIR}$1" "${WORKDIR}$1" +} |