-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall
executable file
·59 lines (52 loc) · 1.58 KB
/
install
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
#!/usr/bin/env bash
APP_DIR=$(pwd)
DATA_DIR="$APP_DIR/data"
mkdir -p "$DATA_DIR"
./generate-config "$DATA_DIR"
INSTALL_DIR="$HOME/.local/bin"
echo "Create symlink $INSTALL_DIR/oh-hai"
mkdir -pv "$INSTALL_DIR"
sudo ln -sfv "$APP_DIR/oh-hai" "$INSTALL_DIR/oh-hai"
# bash
FILE_BASHRC=$HOME/.bashrc
if [ -f "$FILE_BASHRC" ]; then
BASH_SCRIPT_KEYBINDING="$APP_DIR/shell/key-bindings.bash"
RC_FILE="$DATA_DIR/.bash"
tee "$RC_FILE" > /dev/null <<EOT
if [ -f '$BASH_SCRIPT_KEYBINDING' ]; then
. '$BASH_SCRIPT_KEYBINDING'
fi
EOT
SOURCE_STR="[ -f $RC_FILE ] && source $RC_FILE"
SOURCE_STR_ESCAPED=$(echo "$SOURCE_STR" | sed 's/[][\\.*^$\-\/]/\\&/g')
if ! grep -q "^$SOURCE_STR_ESCAPED" $FILE_BASHRC ; then
printf "\n$SOURCE_STR" >> $FILE_BASHRC
fi
else
echo "warn: $FILE_BASHRC does not exist."
fi
# nushell
NU_KEYBINDING="$APP_DIR/shell/key-bindings.nu"
NU_AUTOLOAD="$HOME/.local/share/nushell/vendor/autoload"
mkdir -p "$NU_AUTOLOAD"
ln -sfv "$NU_KEYBINDING" "$NU_AUTOLOAD/oh-hai-key-bindings.nu"
# zsh
FILE_ZSHRC=$HOME/.zshrc
if [ -f "$FILE_ZSHRC" ]; then
ZSH_SCRIPT_KEYBINDING="$APP_DIR/shell/key-bindings.zsh"
RC_FILE="$DATA_DIR/.zsh"
tee "$RC_FILE" > /dev/null <<EOT
if [ -f '$ZSH_SCRIPT_KEYBINDING' ]; then
. '$ZSH_SCRIPT_KEYBINDING'
fi
EOT
SOURCE_STR="[ -f $RC_FILE ] && source $RC_FILE"
SOURCE_STR_ESCAPED=$(echo "$SOURCE_STR" | sed 's/[][\\.*^$\-\/]/\\&/g')
if ! grep -q "^$SOURCE_STR_ESCAPED" $FILE_ZSHRC ; then
printf "\n$SOURCE_STR" >> $FILE_ZSHRC
fi
else
echo "warn: $FILE_ZSHRC does not exist."
fi
echo 'Successfully installed'
echo 'Restart shell or reload bin file.'