-
Notifications
You must be signed in to change notification settings - Fork 13
/
install.sh
executable file
·128 lines (103 loc) · 3.58 KB
/
install.sh
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
117
118
119
120
121
122
123
124
125
126
127
128
#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o pipefail
. scripts/utils.sh
. scripts/brew.sh
. scripts/apps.sh
. scripts/cli.sh
. scripts/config.sh
. scripts/osx.sh
. scripts/fonts.sh
. scripts/packages.sh
cleanup() {
err "Last command failed"
info "Finishing..."
}
wait_input() {
read -p -r "Press enter to continue: "
}
main() {
info "Installing ..."
info "################################################################################"
info "Homebrew Packages"
info "################################################################################"
wait_input
install_packages
post_install_packages
success "Finished installing Homebrew packages"
info "################################################################################"
info "Homebrew Fonts"
info "################################################################################"
wait_input
install_fonts
success "Finished installing fonts"
info "################################################################################"
info "Oh-my-zsh"
info "################################################################################"
wait_input
install_oh_my_zsh
success "Finished installing Oh-my-zsh"
info "################################################################################"
info "MacOS Apps"
info "################################################################################"
wait_input
install_macos_apps
install_masApps
success "Finished installing macOS apps"
info "################################################################################"
info "PiP modules"
info "################################################################################"
wait_input
install_python_packages
success "Finished installing python packages"
info "################################################################################"
info "Rust tools"
info "################################################################################"
wait_input
install_rust_tools
success "Finished installing Rust tools"
info "################################################################################"
info "Golang tools"
info "################################################################################"
wait_input
install_go_tools
success "Finished installing Golang tools"
info "################################################################################"
info "Configuration"
info "################################################################################"
wait_input
setup_osx
success "Finished configuring MacOS defaults. NOTE: A restart is needed"
stow_dotfiles
success "Finished stowing dotfiles"
info "################################################################################"
info "Crating development folders"
info "################################################################################"
mkdir -p ~/Development/protiumx
info "################################################################################"
info "SSH Key"
info "################################################################################"
setup_github_ssh
success "Finished setting up SSH Key"
if ! hash rustc &>/dev/null; then
info "################################################################################"
info "Rust Setup"
info "################################################################################"
wait_input
rustup-init
fi
success "Done"
info "System needs to restart. Restart?"
select yn in "y" "n"; do
case $yn in
y)
sudo shutdown -r now
break
;;
n) exit ;;
esac
done
}
trap cleanup SIGINT SIGTERM ERR EXIT
main