summaryrefslogtreecommitdiff
path: root/scripts/gitlab-ci.sh
blob: f5a22caff1ada296744c3673ae72e065a39f84e2 (plain)
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#!/bin/bash

die() {
    echo ">>> FAIL: $@"
    exit 1
}

is_in_set() {
    local v="$1"
    shift
    for w ; do
        [[ "$v" == "$w" ]] && return 0
    done
    return 1
}

fedora_pkg_minimal() {
    echo \
        /usr/bin/autopoint \
        NetworkManager-libnm-devel \
        desktop-file-utils \
        fedora-repos-rawhide \
        file \
        findutils \
        gcc \
        gettext-devel \
        glib2-devel \
        gtk3-devel \
        libgudev1-devel \
        libnotify-devel \
        libsecret-devel \
        libtool \
        pkgconfig \
        #
}

fedora_pkg_full() {
    echo \
        $(fedora_pkg_minimal) \
        redhat-rpm-config \
        jansson-devel \
        ModemManager-glib-devel \
        libselinux-devel \
        libappindicator-gtk3-devel \
        libdbusmenu-gtk3-devel \
        #
}

fedora_pkg_build() {
    case "$1" in
        autotools)
            echo autoconf automake make
            ;;
        make)
            echo make
            ;;
        meson)
            echo meson
            ;;
        "")
            ;;
        *)
            die "Unknown build option \"$1\""
            ;;
    esac
}

fedora_install_libnma() {
    pushd /etc/yum.repos.d
        local URL='https://gitlab.gnome.org/thaller/network-manager-applet/-/raw/e9d885749b281e86fb92421e73e1564b233141b4/nm-applet-prebuilt-rpms.tgz'
        $CMD curl "$URL" --output ./nm-applet-prebuilt-rpms.tgz
        $CMD tar -xvzf ./nm-applet-prebuilt-rpms.tgz
        $CMD dnf -y install --enablerepo=nm-applet-prebuilt-rpms libnma-devel
    popd
}

fedora_install_minimal() {
    $CMD dnf -y install $(fedora_pkg_minimal) $(fedora_pkg_build "$1")
    fedora_install_libnma
}

fedora_install_full() {
    $CMD dnf -y install $(fedora_pkg_full) $(fedora_pkg_build "$1")
    fedora_install_libnma
}


set -xe

if is_in_set "$1" fedora_install_minimal fedora_install_full ; then
    is_in_set "$2" autotools make meson || die "invalid argument \$2 (\"$2\")"
    "$1" "$2"
    exit 0
fi

die "Unknown command \"$1\""