blob: fd4dd917a4d1a0ade87fa12850158a2f17ed3aea (
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
#!/bin/bash
################################################ SETUP ################################################
deps=(libasound2-dev libevdev-dev liblua5.3-dev libjack-jackd2-dev pkg-config libssl-dev gcc make wget git)
user=$(whoami) # for bypassing user check replace "$(whoami)" with "root".
script_path="`cd $0; pwd`" # Script dir
tmp_path=$(mktemp -d) # Repo download path
makeargs=all # Build args
VAR_DESTDIR="" # Unused
VAR_PREFIX="/usr"
VAR_PLUGINS="$VAR_PREFIX/lib/midimonster"
VAR_DEFAULT_CFG="/etc/midimonster/midimonster.cfg"
VAR_EXAMPLE_CFGS="$VAR_PREFIX/share/midimonster"
################################################ SETUP ################################################
############################################## FUNCTIONS ##############################################
INSTALL-DEPS () { ##Install deps from array "$deps"
for t in ${deps[@]}; do
if [ $(dpkg-query -W -f='${Status}' $t 2>/dev/null | grep -c "ok installed") -eq 0 ];
then
echo "Installing "$t"";
apt-get install $t;
echo "Done.";
else
echo ""$t" already installed!"
fi
done
echo ""
}
INSTALL-PREP () {
(#### Subshell make things like cd $tmp_path easier to revert
echo "Starting download..."
git clone https://github.com/cbdevnet/midimonster.git "$tmp_path" # Gets Midimonster
echo ""
echo ""
echo "Initializing repository..."
cd $tmp_path
git init $tmp_path
echo ""
echo "Finding latest stable version..."
Iversion=$(git describe --abbrev=0) # Get last tag(stable version)
echo "Starting Git checkout to "$Iversion"..."
git checkout -f -q $Iversion
echo "Done."
)
echo ""
echo ""
echo ""
read -e -i "$VAR_PREFIX" -p "PREFIX (Install root directory): " input # Reads VAR_PREFIX
VAR_PREFIX="${input:-$VAR_PREFIX}"
read -e -i "$VAR_PLUGINS" -p "PLUGINS (Plugin directory): " input # Reads VAR_PLUGINS
VAR_PLUGINS="${input:-$VAR_PLUGINS}"
read -e -i "$VAR_DEFAULT_CFG" -p "Default config path: " input # Reads VAR_DEFAULT_CFG
VAR_DEFAULT_CFG="${input:-$VAR_DEFAULT_CFG}"
read -e -i "$VAR_EXAMPLE_CFGS" -p "Example config directory: " input # Reads VAR_EXAMPLE_CFGS
VAR_EXAMPLE_CFGS="${input:-$VAR_EXAMPLE_CFGS}"
export PREFIX=$VAR_PREFIX
export PLUGINS=$VAR_PLUGINS
export DEFAULT_CFG=$VAR_DEFAULT_CFG
export DESTDIR=$VAR_DESTDIR
export EXAMPLES=$VAR_EXAMPLE_CFGS
}
INSTALL-RUN () { # Build
cd "$tmp_path"
make clean
make $makeargs
make install
}
ERROR () {
echo "Aborting..."
CLEAN
exit 1
}
DONE () {
echo Done.
CLEAN
exit 0
}
CLEAN () {
echo "Cleaning..."
rm -rf $tmp_path
}
############################################## FUNCTIONS ##############################################
################################################ Main #################################################
trap ERROR SIGINT SIGTERM SIGKILL
clear
if [ $user != "root" ]; then echo "Installer must be run as root"; ERROR; fi # Check if $user = root!
if [ $(wget -q --spider http://github.com) $? -eq 0 ]; then "INSTALL-DEPS"; else echo You need connection to the internet; ERROR ; fi
INSTALL-PREP
echo ""
INSTALL-RUN
DONE
|