-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathjustfile
More file actions
178 lines (131 loc) · 3.46 KB
/
justfile
File metadata and controls
178 lines (131 loc) · 3.46 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
# GDrive MCP Server - Command Launchpad
set dotenv-load := true
cc := "claude --dangerously-skip-permissions"
# List all recipes
default:
@just --list
# --- Development ---
# Compile TypeScript to dist/
build:
npm run build
# Watch mode (auto-rebuild on change)
watch:
npm run watch
# Run all unit tests
test:
npm test
# Run tests in watch mode
test-watch:
npm run test:watch
# Run tests with coverage report
test-coverage:
npm run test:coverage
# Run integration tests
test-integration:
npm run test:integration
# Run end-to-end tests
test-e2e:
npm run test:e2e
# Run ESLint
lint:
npm run lint
# TypeScript type checking (no emit)
type-check:
npm run type-check
# --- CI ---
# Run full pre-push check suite (lint + type-check + test)
ci: lint type-check test
# --- BMAD ---
# Refresh BMAD method codex
bmad-refresh:
npm run bmad:refresh
# List BMAD agents
bmad-list:
npm run bmad:list
# Validate BMAD configuration
bmad-validate:
npm run bmad:validate
# --- Server ---
# Run OAuth authentication flow (opens browser)
auth:
node ./dist/index.js auth
# Start MCP server (stdio transport)
serve:
node ./dist/index.js
# --- Docker ---
# Build Docker image
docker-build:
docker build -t gdrive-mcp-server .
# Start server with Redis via docker-compose
docker-up:
docker-compose up -d
# Stop docker-compose services
docker-down:
docker-compose down
# View docker-compose logs (follow)
docker-logs:
docker-compose logs -f
# Run standalone container (no Redis)
docker-run:
docker run -i --rm \
-v ${PWD}/credentials:/credentials:ro \
-v ${PWD}/data:/data \
-v ${PWD}/logs:/app/logs \
--env-file .env \
gdrive-mcp-server
# --- Scripts ---
# Rotate token encryption keys
rotate-keys:
./scripts/rotate-keys.sh
# Test server connectivity
test-server:
./scripts/test-server.sh
# Update changelog (auto-detect changes)
changelog:
./scripts/changelog/update-changelog.py --auto
# Run OAuth via auth script
auth-script:
./scripts/auth.sh
# Migrate encrypted tokens to new format
migrate-tokens:
npx tsx ./scripts/migrate-tokens.ts
# --- Git ---
# Quick git status
gs:
git status -sb
# Push current branch
push:
git push origin HEAD
# --- Setup ---
# Interactive guided Cloudflare Workers setup (reads INSTALL.md, walks you through every step)
install:
{{cc}} "Read INSTALL.md carefully, then follow every step in sequence to deploy the gdrive MCP server to Cloudflare Workers. Use the AskUserQuestion tool whenever you need input from me. Run all bash commands yourself — don't ask me to run them."
# Full dev setup: install deps, build, check encryption key
setup:
npm install
npm run build
@echo "Setup complete. Ensure GDRIVE_TOKEN_ENCRYPTION_KEY is set in .env"
@echo "Generate one with: openssl rand -base64 32"
# Generate a new token encryption key
gen-key:
@openssl rand -base64 32
# --- Cleanup ---
# Remove build artifacts and coverage
clean:
rm -rf dist/ coverage/
rm -rf logs/*.log
# Full reset: clean + reinstall + rebuild
reset: clean
rm -rf node_modules/
npm install
npm run build
# --- Claude Code ---
# Start Claude with skip-permissions (default: opus)
start model="opus":
{{cc}} --model {{model}}
# Start Claude with project context loaded
start-ctx model="opus":
{{cc}} --model {{model}} --append-system-prompt "$(cat CLAUDE.md)"
# Start Claude with planning docs loaded
start-plan model="opus":
{{cc}} --model {{model}} --append-system-prompt "$(cat docs/planning/*.md 2>/dev/null)"