-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall
More file actions
executable file
·111 lines (95 loc) · 3.18 KB
/
Copy pathinstall
File metadata and controls
executable file
·111 lines (95 loc) · 3.18 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
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
#!/usr/bin/env zsh
set -e
source ./.scripts/common/util.sh
echo Checking homebrew...
if command_exists brew; then
echo Homebrew installed!
else
echo Installing homebrew...
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
fi
echo Installing homebrew packages...
brew install \
bash zsh \
coreutils curl git rlwrap readline fzf jq htop tree \
neovim mise tmux tree-sitter yarn git-delta ripgrep \
herdr glow bat \
zlib libyaml openssl@1.1
dotfiles=(
.scripts
bin
.bashrc
.ghci
.prettierrc.yml
.tmux.conf
.config/alacritty/alacritty.toml
.config/git/config
.config/herdr/config.toml
.config/nvim
.config/mise/config.toml
.zshenv
.zshrc
.claude/statusline.sh
.claude/CLAUDE.md
)
# Symlink all dotfiles listed above to the right spot
echo Symlinking dotfiles...
for dotfile in ${dotfiles[@]}; do
rm -f $HOME/$dotfile
mkdir -p $(dirname $HOME/$dotfile)
ln -sf $PWD/$dotfile $HOME/$dotfile
done
# Share global agent instructions between Claude and Codex.
rm -f $HOME/.codex/AGENTS.md
mkdir -p $HOME/.codex
ln -sf $PWD/.claude/CLAUDE.md $HOME/.codex/AGENTS.md
# Symlink authored skills into both Claude and Codex (flat, one level deep).
# Codex follows symlinked skill dirs; each tool discovers <dir>/<name>/SKILL.md.
echo Symlinking authored skills into Claude and Codex...
for skill in skills/*/; do
name=$(basename "$skill")
for dir in $HOME/.claude/skills $HOME/.codex/skills; do
mkdir -p $dir
ln -sfn $PWD/skills/$name $dir/$name
done
done
# Apply durable Claude settings (repo -> machine; </dev/null = non-interactive,
# applies all tracked keys and leaves machine-only keys like marketplaces intact).
echo Applying Claude settings...
./bin/claude-settings push </dev/null
source ./.scripts/common/path.sh
# Make sure language versions are installed
echo Installing language versions with mise...
export RUBY_CONFIGURE_OPTS="--with-zlib-dir=$(brew --prefix zlib) --with-readline-dir=$(brew --prefix readline) --with-libyaml-dir=$(brew --prefix libyaml)"
mise install
# Make sure go tools are installed
echo Installing go tools...
mise exec go -- go version
mise exec go -- go install golang.org/x/tools/gopls@latest
mise exec go -- go install github.com/nametake/golangci-lint-langserver@latest
mise exec go -- go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
# Make sure node tools are installed
echo Installing node tools...
mise exec node -- node --version
mise exec node -- npm install -g \
typescript typescript-language-server \
pyright \
vscode-langservers-extracted \
@microsoft/compose-language-service \
dockerfile-language-server-nodejs \
graphql-language-service-cli \
@ignored/solidity-language-server
# Make sure ruby tools are installed
echo Installing ruby tools...
mise exec ruby -- ruby --version
mise exec ruby -- gem install git-up bundler solargraph rubocop pry httparty
# Make sure python tools are installed
echo Installing python tools...
mise exec python -- python --version
mise exec python -- pip install --upgrade pip
mise exec python -- pip install yfinance plotext
if [[ -f ~/coinbase/install ]]; then
echo Installing work stuff...
~/coinbase/install
fi
echo Done!