-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall.sh
More file actions
executable file
·88 lines (73 loc) · 2.91 KB
/
Copy pathinstall.sh
File metadata and controls
executable file
·88 lines (73 loc) · 2.91 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
#!/bin/bash
#
# Install all the things
set -euo pipefail
if [[ -f ~/.dotfilesv && $(cat ~/.dotfilesv) = $(git rev-parse HEAD) ]]; then
exit 1
fi
if [[ "$(uname -s)" = "Darwin" ]]; then
./install-macos.sh
echo "This is a good time to create a GitHub PAT, create ~/.netrc and ~/.localrc"
read -p "Press enter to continue"
else
echo "Linux install is a WIP"
fi
gh alias import gh/aliases.yml
# Setup .zshrc
rm -rf ~/.zshrc
ln -s "$(pwd)/.zshrc" ~/.zshrc
# Setup tmux config
rm -rf ~/.tmux.conf
ln -s "$(pwd)/tmux.conf" ~/.tmux.conf
# Setup cargo config (sccache wrapper, git-fetch-with-cli)
mkdir -p ~/.cargo
rm -rf ~/.cargo/config.toml
ln -s "$(pwd)/cargo/config.toml" ~/.cargo/config.toml
# Setup Ghostty config
mkdir -p "$HOME/Library/Application Support/com.mitchellh.ghostty"
rm -rf "$HOME/Library/Application Support/com.mitchellh.ghostty/config"
ln -s "$(pwd)/ghostty/config" "$HOME/Library/Application Support/com.mitchellh.ghostty/config"
# Sync Copilot config (agents, skills, docs, instructions)
script/sync-copilot install
# Ruby
# git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
# rbenv install 3.3.1
# rbenv global 3.3.1
# lazy vim
# git clone https://github.com/LazyVim/starter ~/.config/nvim
# Setup git
git config --global user.name 'Timothy Clem'
git config --global user.email 'timothy.clem@gmail.com'
git config --global github.user 'tclem'
if [[ "$(uname -s)" = "Darwin" ]]; then
git config --global credential.helper osxkeychain
fi
git config --global alias.co checkout
git config --global alias.lo 'log --oneline --decorate'
git config --global alias.lol 'log --oneline --graph --decorate'
git config --global alias.last 'log -1 HEAD'
git config --global alias.first 'log --reverse --pretty=format:"%h %ad%x09%an%x09%s" --date=short | grep Clem | head -1'
git config --global pull.rebase true
git config --global push.default simple
git config --global push.autoSetupRemote true
git config --global push.followTags true
git config --global branch.sort -committerdate
git config --global tag.sort version:refname
git config --global init.defaultBranch main
git config --global diff.algorithm histogram
git config --global diff.colorMoved plain
git config --global diff.mnemonicPrefix true
git config --global diff.renames true
git config --global fetch.prune true
git config --global fetch.pruneTags true
git config --global fetch.all true
git config --global commit.verbose true
git config --global rerere.enabled true
git config --global rerere.autoupdate true
# Maybe good for big repos or if git status is getting super slow?
# git config --global core.fsmonitor true
# git config --global core.untrackedCache true
# Love this post (and stole a few config ideas from it, thanks Scott!):
# https://blog.gitbutler.com/how-git-core-devs-configure-git/
# write out a manifest of the installed dotfiles version: delete this file to force a re-install
git rev-parse HEAD > ~/.dotfilesv