-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall.sh
More file actions
executable file
·104 lines (85 loc) · 3.12 KB
/
install.sh
File metadata and controls
executable file
·104 lines (85 loc) · 3.12 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
#!/bin/bash
set -e
DOTFILES_DIR="$HOME/ghq/github.com/nkoji21/dotfiles"
echo "========================================="
echo " Dotfiles Setup"
echo "========================================="
echo ""
# Check Homebrew
if ! command -v brew &> /dev/null; then
echo "Error: Homebrew is not installed."
echo "Please install Homebrew first:"
echo " /bin/bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\""
exit 1
fi
echo "✓ Homebrew found"
# Install mise if not installed
if ! command -v mise &> /dev/null; then
echo "Installing mise..."
brew install mise
else
echo "✓ mise found"
fi
# Install aqua if not installed
if ! command -v aqua &> /dev/null; then
echo "Installing aqua..."
brew install aqua
else
echo "✓ aqua found"
fi
echo ""
echo "Creating symlinks..."
# Create directories if not exist
mkdir -p ~/.config/mise
mkdir -p ~/.config/aqua
mkdir -p ~/.config/ghostty/themes
mkdir -p ~/.config/sheldon
mkdir -p ~/.config/nvim
mkdir -p ~/.local/share/sheldon
mkdir -p ~/.cursor
mkdir -p ~/.claude
mkdir -p ~/.codex
mkdir -p ~/.agents
# Symlink home directory files
ln -sfn "$DOTFILES_DIR/.gitconfig" ~/.gitconfig
ln -sfn "$DOTFILES_DIR/.zshenv" ~/.zshenv
ln -sfn "$DOTFILES_DIR/.zshrc" ~/.zshrc
ln -sfn "$DOTFILES_DIR/.zprofile" ~/.zprofile
ln -sfn "$DOTFILES_DIR/.cursor/settings.json" "$HOME/Library/Application Support/Cursor/User/settings.json"
# Symlink .cursor files
ln -sfn "$DOTFILES_DIR/.cursor/commands" ~/.cursor/commands
ln -sfn "$DOTFILES_DIR/.cursor/rules" ~/.cursor/rules
ln -sfn "$DOTFILES_DIR/.cursor/skills" ~/.cursor/skills
# Symlink skills for each agent
# Claude Code: ~/.claude/skills
ln -sfn "$DOTFILES_DIR/.claude/skills" ~/.claude/skills
# Codex: ~/.agents/skills (user-level global path per https://developers.openai.com/codex/skills)
ln -sfn "$DOTFILES_DIR/.agents/skills" ~/.agents/skills
# Cursor: ~/.cursor/skills (user-level global path per https://cursor.com/docs/skills)
ln -sfn "$DOTFILES_DIR/.cursor/skills" ~/.cursor/skills
# Symlink .config subdirectories
ln -sfn "$DOTFILES_DIR/mise/config.toml" ~/.config/mise/config.toml
ln -sfn "$DOTFILES_DIR/aqua/aqua.yaml" ~/.config/aqua/aqua.yaml
ln -sfn "$DOTFILES_DIR/aqua/aqua-checksums.json" ~/.config/aqua/aqua-checksums.json
ln -sfn "$DOTFILES_DIR/aqua/imports" ~/.config/aqua/imports
ln -sfn "$DOTFILES_DIR/ghostty/config" ~/.config/ghostty/config
ln -sfn "$DOTFILES_DIR/ghostty/themes/kanagawa-wave" ~/.config/ghostty/themes/kanagawa-wave
ln -sfn "$DOTFILES_DIR/sheldon/plugins.toml" ~/.config/sheldon/plugins.toml
ln -sfn "$DOTFILES_DIR/sheldon/plugins.lock" ~/.local/share/sheldon/plugins.lock
ln -sfn "$DOTFILES_DIR/nvim" ~/.config/nvim
echo "✓ Symlinks created"
# Install tools
echo ""
echo "Installing tools..."
echo "Installing mise tools (go, node, pnpm, python)..."
mise install
echo "Installing aqua tools (gh, ghq, eza, bat, fzf, act, sheldon)..."
aqua install -a
echo "Generating sheldon lock file..."
sheldon lock
echo ""
echo "========================================="
echo " Setup Complete!"
echo "========================================="
echo ""
echo "Please restart your terminal."