File: build-release.sh

package info (click to toggle)
bibiman 0.19.4-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 788 kB
  • sloc: sh: 201; makefile: 22
file content (56 lines) | stat: -rwxr-xr-x 1,690 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/usr/bin/env bash

build_binaries() {
    CARGO_BUILD_TARGET_DIR=$(mktemp --tmpdir --directory)
    for arch in x86_64-unknown-linux-gnu x86_64-unknown-linux-musl aarch64-unknown-linux-gnu aarch64-unknown-linux-musl x86_64-unknown-freebsd; do
        if cross build --target="$arch" --target-dir="$CARGO_BUILD_TARGET_DIR" --release; then
            mv "$CARGO_BUILD_TARGET_DIR"/"$arch"/release/bibiman ./binary-files/bibiman-"$arch"
        else
            echo "Couldn't build for architecture \'$arch\'."
        fi
    done

    rm -rf "$CARGO_BUILD_TARGET_DIR"
}

manpages() {
    bibiman_version=$(grep "^version =" Cargo.toml | cut -d'"' -f2)
    for man_md in ./man/*.md; do
        sed -i -E "s/bibiman [0-9]+\.[0-9]+\.[0-9]+/bibiman $bibiman_version/g" "$man_md"
        sed -i -E "s/date: .*/date: $(date +%Y-%m-%d)/g" "$man_md"
        man_name="$(basename --suffix=.md "$man_md")"
        pandoc -s --from=markdown --to=man "$man_md" -o ./man/"$man_name"
    done
}

if [[ $# -eq 1 ]]; then
    case "$1" in
    "--man" | "-m")
        echo "Building only the manpages"
        manpages
        ;;
    "--all" | "-a")
        echo "Building binaries"
        build_binaries

        echo "Building manpages"
        manpages
        ;;
    *)
        echo "Invalid argument: $1"
        echo "Use --man to build only manpages."
        echo "Use --all or no args to build binaries and manpages"
        exit 1
        ;;
    esac
elif [[ $# -eq 0 ]]; then
    echo "Building binaries"
    build_binaries

    echo "Building manpages"
    manpages
else
    echo "Use --man to build only manpages."
    echo "Use --all or no args to build binaries and manpages"
    exit 1
fi