-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup
executable file
·112 lines (95 loc) · 3.87 KB
/
setup
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
#!/usr/bin/env zsh
################################################################################
# Setup needed variables and env #
# #
# 1. The directory of the script #
# 2. The path of the gum binary #
# #
# Then this script will take care of installing the needed fonts, and the #
# needed software and tools. #
################################################################################
export DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
######################################################
# Import lib/oses.sh #
# Import lib/shell.sh #
# #
# they contains the functions for detecting the OS #
# and the current shell #
######################################################
source $DIR/lib/oses.sh
source $DIR/lib/shell.sh
#####################################
# Check if the current shell is ZSH #
#####################################
if ! isZsh; then
echo ""
echo "You need to be in ZSH to launch this script."
echo "Install ZSH, then change shell:"
echo ""
echo "> chsh -s \$(which zsh)"
echo ""
echo "You need to re-login afterwards."
exit 1
fi
##############################################
# Check if the operating system is supported #
##############################################
if [ $OS = "other" ]; then
echo ""
echo "This script is only for macOS and Linux systems."
echo ""
exit 1
fi
##########################################
# Only on MacOS, install fonts and kitty #
# and Homebrew #
##########################################
if [ $OS = "macos" ]; then
$DIR/installers/macos/fonts.sh
$DIR/installers/macos/kitty.sh
fi
##############################################
# Only on Linux, install make tools #
##############################################
if [[ $OS = "linux" || $OS = "wsl" ]]; then
echo ""
echo "Installing make tools..."
echo ""
sudo apt update
sudo apt install g++ gcc make
fi
####################
# Install Homebrew #
####################
$DIR/installers/00-install-homebrew.sh
#########################
# Install brew software #
#########################
brew install gum git tmux \
micro \
neovim ripgrep fzf \
yt-dlp youtube-dl \
mailpit \
autojump # Shell utilities
################################################################################
# #
# GUM is available, we can now start the installation process. #
# #
################################################################################
gum style --border normal --padding "0 4" --border-foreground 212 "All dependencies are installed."
if ! gum confirm "Continue with the installation?" ; then
gum style --padding "0 2" "Installation aborted."
exit 1
fi
$DIR/installers/01-create-folders.sh
$DIR/installers/02-install-oh-my-zsh.sh
$DIR/installers/03-symlink-dotfiles.sh
$DIR/installers/04-symlink-binaries.sh
$DIR/installers/05-clone-tmux-tpm.sh
##################################################################
# If the private dotfiles repo exists, then run the setup script #
##################################################################
if [ -f $DIR/dotfiles-private/setup ] ; then
gum style --padding "0 2" "Setting up private dotfiles..."
$DIR/dotfiles-private/setup
fi