Skip to content
Snippets Groups Projects
cook.sh 2.18 KiB
Newer Older
Jeremy Soller's avatar
Jeremy Soller committed
export RUST_TARGET_PATH="$PWD/targets"
Jeremy Soller's avatar
Jeremy Soller committed
export RUSTFLAGS="--cfg redox"
export CARGOFLAGS=
Jeremy Soller's avatar
Jeremy Soller committed
TARGET=x86_64-unknown-redox
Jeremy Soller's avatar
Jeremy Soller committed
REPO="$PWD/repo/$TARGET"
Jeremy Soller's avatar
Jeremy Soller committed
function op {
    echo "$1" "$2"
    case "$2" in
        fetch)
            if [ ! -d build ]
            then
                git clone --recursive "$GIT" build
            fi

            pushd build > /dev/null
            git pull
            git submodule sync
            git submodule update --init --recursive
            popd > /dev/null
            ;;
        unfetch)
Jeremy Soller's avatar
Jeremy Soller committed
            rm -rfv build
Jeremy Soller's avatar
Jeremy Soller committed
            ;;
        update)
            pushd build > /dev/null
            xargo update
            popd > /dev/null
            ;;
        build)
            pushd build > /dev/null
            xargo build --target "$TARGET" $CARGOFLAGS
            popd > /dev/null
            ;;
        clean)
            pushd build > /dev/null
            xargo clean
            popd > /dev/null
            ;;
        stage)
            mkdir -p stage/bin
            pushd build > /dev/null
            #TODO xargo install --root "../stage" $CARGOFLAGS
            cp -v $(find target/x86_64-unknown-redox/debug/ -maxdepth 1 -type f ! -name "*.*") ../stage/bin
Jeremy Soller's avatar
Jeremy Soller committed
            strip -v ../stage/bin/*
Jeremy Soller's avatar
Jeremy Soller committed
            popd > /dev/null
            ;;
        unstage)
Jeremy Soller's avatar
Jeremy Soller committed
            rm -rfv stage
Jeremy Soller's avatar
Jeremy Soller committed
            ;;
        tar)
            pushd stage > /dev/null
Jeremy Soller's avatar
Jeremy Soller committed
            tar cfv ../stage.tar .
Jeremy Soller's avatar
Jeremy Soller committed
            popd > /dev/null
            ;;
        untar)
Jeremy Soller's avatar
Jeremy Soller committed
            rm -rfv stage.tar
            ;;
        publish)
            mkdir -p "$REPO"
            cp -v stage.tar "$REPO/$1.tar"
            ;;
        unpublish)
            rm -rfv "$REPO/$1.tar"
Jeremy Soller's avatar
Jeremy Soller committed
            ;;
        *)
Jeremy Soller's avatar
Jeremy Soller committed
            echo "cook.sh $1 {build|clean|fetch|unfetch|publish|unpublish|stage|unstage|tar|untar|update}"
Jeremy Soller's avatar
Jeremy Soller committed
if [ -n "$1" ]
then
    if [ -d "recipes/$1" ]
    then
Jeremy Soller's avatar
Jeremy Soller committed
        cd "recipes/$1"
Jeremy Soller's avatar
Jeremy Soller committed
        source recipe.sh
        for arg in "${@:2}"
        do
Jeremy Soller's avatar
Jeremy Soller committed
            op "$1" "$arg"
Jeremy Soller's avatar
Jeremy Soller committed
    else
Jeremy Soller's avatar
Jeremy Soller committed
        echo "cook.sh: recipe '$1' not found"
Jeremy Soller's avatar
Jeremy Soller committed
    fi
else
Jeremy Soller's avatar
Jeremy Soller committed
    echo "cook.sh {package} {build|clean|fetch|unfetch|publish|unpublish|stage|unstage|tar|untar|update}"
Jeremy Soller's avatar
Jeremy Soller committed
fi