-
Notifications
You must be signed in to change notification settings - Fork 18
/
Taskfile.dist.yml
152 lines (126 loc) · 3.88 KB
/
Taskfile.dist.yml
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
# yaml-language-server: $schema=https://taskfile.dev/schema.json
version: '3'
tasks:
commit:brew-packages:
desc: Commits the Brewfile.lock.json file if changed
cmds:
- |
./scripts/commit_changed_file.sh \
'Brewfile.lock.json' \
'chore(brew): update packages'
commit:nvim-plugins:
desc: Commits the lazy-lock.json file if changed
cmds:
- |
./scripts/commit_changed_file.sh \
'./config/nvim/lazy-lock.json' \
'chore(nvim): update plugins'
format:lua:check:
desc: Runs a Lua format check using stylua
cmds:
- stylua --allow-hidden --respect-ignores --check .
format:lua:
desc: Runs a Lua format using stylua
cmds:
- stylua --allow-hidden --respect-ignores .
install:dotfiles:
desc: Install dotfiles
summary: |
Install dotfiles
Installs all dependencies and symlink dotfiles.
Idempotent, can be used to update packages.
cmds:
- ./setup.sh
install:ollama:
desc: Installs Ollama and pulls useful models
summary: |
Works only on macOS for now.
Installs the following models:
- llama3
- mistral
- codellama
cmds:
- brew install --cask ollama
- ollama pull llama3.1
- ollama pull codellama
- ollama pull mistral
install:pnpm:
desc: Sets up PNPM on the local machine
summary: |
Enables and activates pnpm in the current project
Requires Node.js to be properly set up
cmds:
- corepack enable
- corepack enable pnpm
- asdf reshim nodejs
- pnpm --version
install:sudo-touch-id:
desc: Sets up touch id as sufficient sudo permission
summary: Sets up touch id as sufficient sudo permission
This survives OS updates after macOS Sonoma.
Requires sudo.
cmds:
- sed 's/^#auth/auth/' /etc/pam.d/sudo_local.template > /etc/pam.d/sudo_local
lint:yaml:
desc: Runs yamllint on this repo
cmds:
- yamllint --strict --config-file ./config/yamllint/config .
sync:asdf:
desc: Updates asdf plugins and installs asdf packages for this project
cmds:
- asdf plugin-update --all
- asdf install
sync:dotfiles:
desc: Synchronize dotfiles
summary: |
Synchronize dotfiles
Only symlinks dotfiles, does not install packages
cmds:
# we need to sync asdf for the local project before we try to install any packages
- task: sync:asdf
- task: install:pnpm
- task: sync:brew
- ruby ./installer.rb --sync --force
sync:nvim:
desc: Syncs/updates Neovim plugins, CLI utils, and TreeSitter plugins
summary: |
Updates Neovim plugins, CLI utils, and TreeSitter plugins
Then automatically commits the changes to the lazy-lock file, if there are any.
cmds:
- ./scripts/nvim-update.sh
- task: commit:nvim-plugins
sync:brew:
desc: Synchronize homebrew packages
summary: |
Updates Homebrew packages
Then automatically commits the changes to the Brewfile.lock.json file, if there are any.
cmds:
- brew bundle
- task: commit:brew-packages
tmux:reload:
desc: Reload Tmux Configuration
cmds:
- cmd: tmux source-file ~/.config/tmux/tmux.conf
silent: true
- cmd: tmux display-message 'tmux.conf reloaded'
silent: true
- cmd: echo "Tmux Config Reloaded!"
silent: true
tmux:plugins:install:
desc: Install Tmux Plugins
cmds:
- task: tmux:reload
- cmd: ./config/tmux/plugins/tpm/bin/install_plugins
silent: true
tmux:plugins:update:
desc: Update Tmux Plugins
cmds:
- task: tmux:reload
- cmd: ./config/tmux/plugins/tpm/bin/update_plugins all
silent: true
tmux:plugins:clean:
desc: Clean Tmux Plugins
cmds:
- task: tmux:reload
- cmd: ./config/tmux/plugins/tpm/bin/clean_plugins
silent: true