redox/cook.sh
2016-10-31 14:54:20 -06:00

83 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
export RUST_TARGET_PATH="$PWD/targets"
export RUSTFLAGS="--cfg redox"
export CARGOFLAGS=
TARGET=x86_64-unknown-redox
set -e
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)
rm -rf build
;;
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
popd > /dev/null
;;
unstage)
rm -rf stage
;;
tar)
pushd stage > /dev/null
tar cf ../stage.tar .
popd > /dev/null
;;
untar)
rm -rf stage.tar
;;
*)
echo "$0 {package} {build|clean|fetch|update}"
;;
esac
}
if [ -n "$1" ]
then
if [ -d "recipes/$1" ]
then
cd "recipes/$1"
source recipe.sh
for arg in "${@:2}"
do
op "$1" "$arg"
done
else
echo "$0: recipe '$1' not found"
fi
else
echo "$0 {package} {build|clean|fetch|unfetch|stage|unstage|tar|untar|update}"
fi