sulu-ocaml-core / make-dist

#!/usr/bin/env bash
set -e -u -o pipefail

. build-common.sh

function usage {
    echo "usage: ${BASH_SOURCE[0]} <dest-dir> [packages...]"
}

if [[ $# -lt 1 ]]; then usage; exit 1; fi

destdir="$1"
shift
if [[ $# -gt 0 ]]; then
    packages="$@"
else
    packages="${build_order[@]}"
fi

function file_included {
    case "$1" in
        oasis.sh)             false;;
        _build)               false;;
        setup.log|setup.data) false;;
        *) [[ ! -e "$1"/oasis.sh ]];;
    esac
}
excluded=(
    oasis.sh
    _build
    setup.log
    setup.data
)

hgroot=$(hg root)

for dir in $packages; do
    pushd "base/$dir"

    ./oasis.sh
    name=$(oasis query name)
    version=$(oasis query version)
    dest="$destdir/${name}-${version}"
    mkdir "$dest"

    for f in *; do
        if file_included "$f"; then
            cp -rp "$f" "$dest/$f"
        fi
    done
    cp -p "$hgroot/licensing/"* "$dest/"

    popd
done
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.