-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathinstall
More file actions
executable file
·82 lines (68 loc) · 2.96 KB
/
Copy pathinstall
File metadata and controls
executable file
·82 lines (68 loc) · 2.96 KB
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
#!/bin/bash
# From http://stackoverflow.com/a/21188136/446554
get_abs_filename() {
echo "$(cd "$(dirname "$1")" && pwd)/$(basename "$1")"
}
MODE="$1" # Usage: ./install [--global]
INSTALL_SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
DEFAULT_CONFIG_FILENAME="default.config"
EXECUTABLE="multi"
EXECUTABLE_SOURCE=$(get_abs_filename "${INSTALL_SCRIPT_DIR}/${EXECUTABLE}")
if [[ "$MODE" == "--global" ]]; then
echo "Installing to /usr/local/bin"
echo ""
HOME_CONFIG_FILENAME="${HOME}/.multi"
ETC_CONFIG_FILENAME="/etc/multi"
INSTALLED_EXECUTABLE="/usr/local/bin/${EXECUTABLE}"
# Install the default config file in the user's home directory
if [[ ! -f $HOME_CONFIG_FILENAME ]]; then
echo "Copying default config to $HOME_CONFIG_FILENAME"
cp "${INSTALL_SCRIPT_DIR}/$DEFAULT_CONFIG_FILENAME" "$HOME_CONFIG_FILENAME"
elif [[ -f $HOME_CONFIG_FILENAME ]]; then
echo "WARN: $HOME_CONFIG_FILENAME already exists. Not overwriting."
fi
# Install the default config file into /etc
if [[ ! -f $ETC_CONFIG_FILENAME ]]; then
echo "Copying default config to $ETC_CONFIG_FILENAME"
sudo cp "${INSTALL_SCRIPT_DIR}/$DEFAULT_CONFIG_FILENAME" "$ETC_CONFIG_FILENAME"
elif [[ -f $ETC_CONFIG_FILENAME ]]; then
echo "WARN: $ETC_CONFIG_FILENAME already exists. Not overwriting."
fi
# Install executable in /usr/local/bin
if [[ ! -f $INSTALLED_EXECUTABLE ]]; then
echo "Installing $EXECUTABLE to $INSTALLED_EXECUTABLE"
sudo cp "$EXECUTABLE_SOURCE" "$INSTALLED_EXECUTABLE"
sudo chmod +x "$INSTALLED_EXECUTABLE"
elif [[ -f $INSTALLED_EXECUTABLE ]]; then
echo "WARN: $INSTALLED_EXECUTABLE already exists. Not overwriting."
fi
if [[ ":$PATH:" != *":/usr/local/bin:"* ]]; then
echo "WARNING: /usr/local/bin is not in your PATH."
fi
else
echo "Installing locally to ~/.local/bin"
echo ""
HOME_CONFIG_FILENAME="${HOME}/.multi"
USER_BIN="${HOME}/.local/bin"
INSTALLED_EXECUTABLE="${USER_BIN}/${EXECUTABLE}"
# Create ~/.local/bin if it doesn't exist
mkdir -p "$USER_BIN"
# Install the default config file in the user's home directory
if [[ ! -f $HOME_CONFIG_FILENAME ]]; then
echo "Copying default config to $HOME_CONFIG_FILENAME"
cp "${INSTALL_SCRIPT_DIR}/$DEFAULT_CONFIG_FILENAME" "$HOME_CONFIG_FILENAME"
elif [[ -f $HOME_CONFIG_FILENAME ]]; then
echo "WARN: $HOME_CONFIG_FILENAME already exists. Not overwriting."
fi
# Install executable in ~/.local/bin
if [[ ! -f $INSTALLED_EXECUTABLE ]]; then
echo "Installing $EXECUTABLE to $INSTALLED_EXECUTABLE"
cp "$EXECUTABLE_SOURCE" "$INSTALLED_EXECUTABLE"
chmod +x "$INSTALLED_EXECUTABLE"
elif [[ -f $INSTALLED_EXECUTABLE ]]; then
echo "WARN: $INSTALLED_EXECUTABLE already exists. Not overwriting."
fi
if [[ ":$PATH:" != *":$USER_BIN:"* ]]; then
echo "WARNING: $USER_BIN is not in your PATH."
fi
fi