-
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathTaskfile.yml
More file actions
186 lines (157 loc) · 3.68 KB
/
Taskfile.yml
File metadata and controls
186 lines (157 loc) · 3.68 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
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
178
179
180
181
182
183
184
185
186
version: '3'
vars:
INSTALL_DIR: '{{.INSTALL_DIR | default "/usr/local/bin"}}'
PROJECT_DIR:
sh: pwd
tasks:
default:
desc: Show available tasks
cmds:
- task --list
# === Build ===
build:
desc: Build all packages
cmds:
- bun install
- bun run build
build:core:
desc: Build core package only
dir: packages/core
cmds:
- bun run build
build:cli:
desc: Build CLI package only
dir: packages/cli
cmds:
- bun run build
build:tui:
desc: Build TUI package only
dir: packages/tui
cmds:
- bun run build
build:tui:bin:
desc: Build TUI standalone binary
dir: packages/tui
cmds:
- bun build --compile --minify ./src/index.ts --outfile ./dist-bin/kaban-tui
# === Dev (source, hot reload) ===
dev:cli:
desc: Run CLI from source (pass args after --)
dir: packages/cli
cmds:
- bun run src/index.ts {{.CLI_ARGS}}
dev:tui:
desc: Run TUI from source
dir: packages/tui
cmds:
- bun run src/index.ts
dev:tui:watch:
desc: Run TUI from source with watch mode
dir: packages/tui
cmds:
- bun run --watch src/index.ts
dev:docs:
desc: Serve landing page locally
cmds:
- bun run docs/serve.ts
# === Run (built dist) ===
cli:
desc: Run built CLI (pass args after --)
cmds:
- bun ./packages/cli/dist/index.js {{.CLI_ARGS}}
tui:
desc: Run built TUI
cmds:
- bun ./packages/tui/dist/index.js
tui:bin:
desc: Run TUI standalone binary
cmds:
- ./packages/tui/dist-bin/kaban-tui
# === Test ===
test:
desc: Run all tests
cmds:
- bun run test
test:core:
desc: Run core tests only
dir: packages/core
cmds:
- bun test
test:cli:
desc: Run CLI tests only
dir: packages/cli
cmds:
- bun test
# === Database ===
db:generate:
desc: Generate new migration (NAME=xxx)
dir: packages/core
cmds:
- bunx drizzle-kit generate --name {{.NAME | default "migration"}}
db:check:
desc: Check migration status
dir: packages/core
cmds:
- bunx drizzle-kit check
# === Quality ===
typecheck:
desc: Run type checking
cmds:
- bun run typecheck
lint:
desc: Run linter
cmds:
- bun run lint
format:
desc: Format code
cmds:
- bun run format
check:
desc: Run all checks (lint + format + typecheck)
cmds:
- bun run check
# === Install/Uninstall ===
install:
desc: Install kaban wrapper script to system
deps: [build]
cmds:
- |
WRAPPER='#!/bin/bash
exec bun run "{{.PROJECT_DIR}}/packages/cli/src/index.ts" "$@"'
if [ -w "{{.INSTALL_DIR}}" ]; then
echo "$WRAPPER" > "{{.INSTALL_DIR}}/kaban"
chmod +x "{{.INSTALL_DIR}}/kaban"
else
echo "$WRAPPER" | sudo tee "{{.INSTALL_DIR}}/kaban" > /dev/null
sudo chmod +x "{{.INSTALL_DIR}}/kaban"
fi
echo "Installed kaban to {{.INSTALL_DIR}}"
echo "Note: Requires bun and project at {{.PROJECT_DIR}}"
uninstall:
desc: Remove kaban from system
cmds:
- |
if [ -w "{{.INSTALL_DIR}}" ]; then
rm -f "{{.INSTALL_DIR}}/kaban"
else
sudo rm -f "{{.INSTALL_DIR}}/kaban"
fi
- echo "Uninstalled kaban from {{.INSTALL_DIR}}"
update:
desc: Rebuild and reinstall
cmds:
- task: install
clean:
desc: Remove build artifacts
cmds:
- rm -rf packages/*/dist packages/tui/dist-bin
- echo "Cleaned build artifacts"
# === Shortcuts ===
b:
desc: Alias for build
cmds:
- task: build
t:
desc: Alias for test
cmds:
- task: test