Skip to content
Snippets Groups Projects
build 1.73 KiB
Newer Older
  • Learn to ignore specific revisions
  • #!/usr/bin/env bash
    
    # Generate the resources/version.properties file
    version() {
    
    Tom Robinson's avatar
    Tom Robinson committed
        VERSION_INFO=$(./bin/version)
        IFS=', ' read -a info <<< ${VERSION_INFO}
    
    Tom Robinson's avatar
    Tom Robinson committed
        echo "Tagging uberjar with version '$VERSION_INFO'..."
    
    Tom Robinson's avatar
    Tom Robinson committed
        # Ok, now generate the appropriate version.properties file.
        echo "tag=${info[0]}" > resources/version.properties
        echo "hash=${info[1]}" >> resources/version.properties
        echo "branch=${info[2]}" >> resources/version.properties
        echo "date=${info[3]}" >> resources/version.properties
    
    frontend-deps() {
        echo "Running 'yarn' to download javascript dependencies..." &&
        yarn
    
        echo "Running 'webpack' with NODE_ENV=production assemble and minify frontend assets..." &&
        NODE_ENV=production ./node_modules/.bin/webpack --bail
    
    frontend-fast() {
    
        echo "Running 'webpack' with NODE_ENV=development to assemble frontend assets..." &&
        NODE_ENV=development ./node_modules/.bin/webpack --bail --devtool eval
    
    sample-dataset() {
        if [ -f resources/sample-dataset.db.mv.db ]; then
            echo "Sample Dataset already generated."
        else
            echo "Running 'lein generate-sample-dataset' to generate the sample dataset..."
            lein generate-sample-dataset
        fi
    
    uberjar() {
        echo "Running 'lein uberjar'..."
        lein uberjar
    
        version && frontend-deps && frontend && sample-dataset && uberjar
    
    # Default to running all but let someone specify one or more sub-tasks to run instead if desired
    # e.g.
    # ./bin/build                  # do everything
    # ./bin/build version          # just update version.properties
    # ./bin/build version uberjar  # just update version.properties and build uberjar
    if [ "$1" ]; then
        for cmd in "$@"; do
            $cmd
        done
    else
        all
    fi