-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.sh
executable file
·177 lines (146 loc) · 4.94 KB
/
setup.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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
#!/usr/bin/env bash
sudo apt install -y curl\
wget
################################
######### chezmoi###############
################################
./install_chezmoi.sh
chezmoi init https://github.com/fapdash/dotfiles.git
chezmoi apply
ln -s ~/.local/share/chezmoi/ ~/git/dotfiles
# TODO(FAP): change remote of ~/.local/share/chezmoi/ to use ssh
################################
######### Emacs ################
################################
sudo snap install emacs --classic
ln -s ~/git/dotfiles/emacs/.emacs ~/.emacs
mkdir ~/.emacs.d 2> /dev/null
ln -s ~/git/dotfiles/emacs/lisp/ ~/.emacs.d/lisp
ln -s ~/git/dotfiles/emacs/.rg_ignore ~/.emacs.d
################################
######### streamlink ###########
################################
ln -s ~/git/dotfiles/streamlink ~/.config/streamlink
################################
######### fzf ##################
################################
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
################################
######### Bash #################
################################
mv ~/.bashrc ~/.bashrc.bak
ln -sf ~/git/dotfiles/bash/.bashrc ~/.bashrc
source ~/.bashrc
################################
######### mise #################
################################
curl https://mise.run | sh
$HOME/.local/bin/mise activate bash
# TODO(FAP): activating mise immediately didn't work?
mise use -g node@latest
# https://github.com/asdf-vm/asdf-erlang?tab=readme-ov-file#ubuntu-2404-lts
sudo apt-get -y install build-essential autoconf m4 libncurses5-dev libwxgtk3.2-dev libwxgtk-webview3.2-dev libgl1-mesa-dev libglu1-mesa-dev libpng-dev libssh-dev unixodbc-dev xsltproc fop libxml2-utils libncurses-dev
mise use -g erlang@latest
mise use -g elixir@latest
# TODO(FAP): flutter wants dart to come from flutter sdk
mise use -g dart@latest
dart --disable-analytics
sudo apt install libgtk-3-dev ninja-build cmake clang -y
mise use -g go@latest
mise use -g python@latest
npm install -g pnpm
npm install -g yarn
npm install -g stylelint
# TODO(FAP): switch to https://github.com/astral-sh/uv, https://github.com/astral-sh/rye and https://github.com/astral-sh/ruff for python?
pip3 install thefuck --user
pip3 install ansible --user
pip3 install yamllint --user
pip3 install flake8 --user
################################
######### chezmoi###############
################################
./install_chezmoi.sh
################################
######### Ruby #################
################################
sudo apt-get install libz-dev libssl-dev libffi-dev libyaml-dev -y
mise use -g ruby@latest
ln -s ~/git/dotfiles/ruby/.pryrc ~/.pryrc
ln -s ~/git/dotfiles/ruby/.irbrc ~/.irbrc
################################
######### sdkman ###############
################################
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk update
sdk install java 11.0.23-tem
sdk install java 17.0.11-tem
sdk install java 21.0.3-tem
sdk default java 21.0.3-tem
sdk install gradle
################################
######### ledger ###############
################################
sudo apt install ledger -y
pip3 install https://github.com/egh/ledger-autosync/archive/refs/heads/master.tar.gz --user
mkdir -p ~/.config/ledger-autosync/plugins
ln -s ~/git/dotfiles/ledger-autosync/plugins/teo.py ~/.config/ledger-autosync/plugins/teo.py
ln -s ~/git/dotfiles/ledger-autosync/plugins/dkb.py ~/.config/ledger-autosync/plugins/dkb.py
################################
######### snap #################
################################
# only retain 1 old version of installed snaps
# https://superuser.com/a/1361201/669906
sudo snap set system refresh.retain=2
# TODO(FAP): vagrant
# TODO(FAP): vscode, vscodium
# TODO(FAP): virtualbox
# TODO(FAP): dart-sass
# TODO(FAP): chezscheme
# TODO(FAP): sbcl + quicklisp
# TODO(FAP): docker: https://docs.docker.com/engine/install/ubuntu/
# TODO(FAP): guile
# TODO(FAP): jq
# TODO(FAP): clojure
# sdk install leiningen
# mise use -g clojure@latest
# mise use -g clj-kondo@latest
# TODO(FAP): babashka
# TODO(FAP): postgres
# TODO(FAP): mysql
# TODO(FAP): mariadb
# TODO(FAP): redis
# TODO(FAP): dbeaver
# TODO(FAP): beekeeper-studio
# TODO(FAP): duckdb
# TODO(FAP): wget
# TODO(FAP): webp
# TODO(FAP): wireguard
# TODO(FAP): wireshark
# TODO(FAP): fireshot
# TODO(FAP): shotwell
# TODO(FAP): peek
# TODO(FAP): ctags
# TODO(FAP): build-essential
# TODO(FAP): Zellij
# TODO(FAP): android-sdk
# TODO(FAP): libenchant-2-dev
# TODO(FAP): shellcheck
# TODO(FAP): ag / silversurfer
# TODO(FAP): tldr
# TODO(FAP): age / rage
# TODO(FAP): entr
if [ ! -d ~/plantuml ]; then
mkdir ~/plantuml
fi
curl -o ~/plantuml/plantuml.jar https://github.com/plantuml/plantuml/releases/download/v1.2024.6/plantuml-1.2024.6.jar
gem install asciidoctor
gem install pry pry-doc
gem install debug
gem install lolcat
gem install sqlint
gem install mdl # markdownlint
pip3 install --user streamlink
sudo apt install nemo -y
xdg-mime default nemo.desktop inode/directory