build.bash
1 #!/bin/sh 2 3 set -e 4 5 # Attempt to install `asciidoctor` on Debian, Arch Linux and MacOS. 6 install() { 7 os="$(uname)" 8 9 case "$os" in 10 Linux) 11 if command -v apt-get >/dev/null 2>&1; then 12 # Debian 13 apt-get update 14 apt-get install -y asciidoctor 15 elif command -v pacman >/dev/null 2>&1; then 16 # Arch Linux 17 pacman -Sy --noconfirm asciidoctor 18 fi ;; 19 Darwin) # MacOS 20 if command -v brew >/dev/null 2>&1; then 21 brew install asciidoctor 22 fi ;; 23 *) 24 echo "fatal: unknown operating system: $os" 25 exit 1 ;; 26 esac 27 } 28 29 main () { 30 if [ $# -ne 1 ]; then 31 echo "$#: Wrong number of arguments" 32 exit 1 33 fi 34 35 if ! command -v asciidoctor >/dev/null 2>&1; then 36 install 37 fi 38 39 target="$1" 40 rustup target add "$target" 41 42 staging="radicle-$target" 43 mkdir -p "$staging" 44 45 cargo build --target="$target" --package=radicle-httpd --release 46 cp target/"$target"/release/radicle-httpd "$staging"/ 47 48 cargo build --target="$target" --package=radicle-node --release 49 cp target/"$target"/release/radicle-node "$staging"/ 50 51 cargo build --target="$target" --bin rad --release 52 cp target/"$target"/release/rad "$staging"/ 53 54 cargo build --target="$target" --bin git-remote-rad --release 55 cp target/"$target"/release/git-remote-rad "$staging"/ 56 57 scripts/build-man-pages.sh "$staging" $(find . -name '*.1.adoc') 58 59 tar czf "$staging.tar.gz" "$staging" 60 cp "$staging.tar.gz" "$staging"/ 61 } 62 63 main "$@"