CRATE_NAME=lc
MISC="README.md LICENSE"
info () {
printf "\r [ \033[00;34mINFO\033[0m ] $1\n"
}
success () {
printf "\r\033[2K [ \033[00;32mOK\033[0m ] $1\n"
}
install_cross() {
cross --version > /dev/null
if [ $? -ne 0 ]; then
info 'cross not found. try install cross'
cargo install cross
success "success install cross"
else
info "cross already installed"
fi
}
install_rgh() {
rgh --version > /dev/null
if [ $? -ne 0 ]; then
info 'rgh not found. try install rgh'
cargo install rgh
success "success install rgh"
else
info "rgh already installed"
fi
}
build_all() {
rm -rf dist/
build x86_64-pc-windows-gnu $CRATE_NAME.exe
build x86_64-apple-darwin $CRATE_NAME
build x86_64-unknown-linux-gnu $CRATE_NAME
}
build() {
TARGET=$1
BIN_NAME=$2
DIRNAME=${CRATE_NAME}_${TARGET}
info "start build ${TARGET} ${BIN_NAME}"
cross build --target ${TARGET} --release
mkdir -p ${DIRNAME}
\
cp ./target/${TARGET}/release/${BIN_NAME} ${DIRNAME}
cp ${MISC} ${DIRNAME}
\
mkdir -p dist
tar czf dist/${DIRNAME}.tar.gz ${DIRNAME}
rm -rf ${DIRNAME}
success "success build ${TARGET} ${BIN_NAME}"
}
release() {
VERSION=$1
GITHUB_TOKEN=$2
rgh $VERSION ./dist --token $GITHUB_TOKEN
}
main() {
install_cross
install_rgh
build_all
release $1 $2
}
main $1 $2