-
-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy pathTaskfile.yml
More file actions
208 lines (188 loc) · 5.83 KB
/
Taskfile.yml
File metadata and controls
208 lines (188 loc) · 5.83 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
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
# Task runner for DOSee - MS-DOS Emulator for the Web
# =================================================
#
# This task runner requires Task to be installed.
# https://taskfile.dev/#/installation
#
version: '3'
silent: true
vars:
REQNPM: 'task requires Node.js and pnpm: https://pnpm.io'
REQPNPM: 'task requires pnpm: https://pnpm.io'
BUILD_DIR: 'build'
SRC_DIR: 'src'
tasks:
default:
desc: List the available tasks.
aliases: [help]
hidden: true
cmds:
- task --list
# Server tasks
serve:
desc: Clean, rebuild and Serve DOSee on localhost:8086.
aliases: [s]
preconditions:
- sh: node -v
msg: '{{.REQNPM}}'
cmds:
- task: clean
- task: build
- pnpm run serve
# Build tasks
build:
desc: Build DOSee for production.
aliases: [b]
preconditions:
- sh: node -v
msg: '{{.REQNPM}}'
cmds:
- rm -rf {{.BUILD_DIR}}
- mkdir -p {{.BUILD_DIR}}
- pnpm run install
- echo "DOSee built successfully in {{.BUILD_DIR}} directory"
# System checks
checks:
desc: Check system versions and all tools used by DOSee.
aliases: [v]
cmds:
- echo "=== System Information ==="
- echo "Node.js:" && node --version
- echo "pnpm:" && pnpm --version
- echo "=== Development Tools ==="
- echo "ESLint:" && pnpm exec eslint --version
- echo "Prettier:" && pnpm exec prettier --version
- echo "HTMLHint:" && pnpm exec htmlhint --version
- echo "=== Build Tools ==="
- echo "Workbox CLI:" && pnpm exec workbox --version
- echo "copyfiles:" && pnpm exec copyfiles --version
- echo "copyup:" && pnpm exec copyup --version
- echo "http-server:" && pnpm exec http-server --version
- echo "=== DOSee Dependencies ==="
- echo "BrowserFS:" && echo "$(pnpm list browserfs | grep browserfs)"
- echo "mini.css:" && echo "$(pnpm list mini.css | grep mini.css)"
- echo "=== All checks completed ==="
# Clean tasks
clean:
desc: Clean build directory.
aliases: [c]
cmds:
- rm -rf {{.BUILD_DIR}}
- mkdir -p {{.BUILD_DIR}}
# Development tasks
dev:
desc: Development mode - build and serve.
aliases: [d]
cmds:
- task: build
- task: serve
# Format tasks
format:
desc: Format code using Prettier.
aliases: [f]
cmds:
- pnpm exec prettier --write .
- echo "Code formatting completed"
# Installation tasks
install:
desc: Install dependencies and build DOSee.
aliases: [i]
preconditions:
- sh: node -v
msg: '{{.REQNPM}}'
- sh: pnpm -v
msg: '{{.REQNPM}}'
cmds:
- pnpm install
- task: build
# Linting tasks
lint:
desc: Run ESLint on JavaScript files.
aliases: [l]
cmds:
- pnpm exec eslint . --ext .js,.mjs || echo "ESLint found issues that need to be fixed"
lint-fix:
desc: Run ESLint and automatically fix fixable issues.
aliases: [lf]
cmds:
- pnpm exec eslint src/js/*.js --fix
- echo "ESLint fixes applied. Please review the changes."
# DOS program management
list-programs:
desc: List available DOS programs.
aliases: [lp]
cmds:
- ls -la {{.SRC_DIR}}/dos_programs/
# Package management tasks
packages-latest:
desc: Interactively update to the latest dependencies.
aliases: [pl]
preconditions:
- sh: pnpm -v
msg: '{{.REQPNPM}}'
cmds:
- pnpm update --interactive --latest
packages-update:
desc: Update all dependencies to the latest versions.
aliases: [pu]
preconditions:
- sh: pnpm -v
msg: '{{.REQPNPM}}'
cmds:
- pnpm update
# Puppeteer tasks
puppeteer-chrome:
desc: Run DOSee in headless browser using Puppeteer (Chrome default).
aliases: [pc]
preconditions:
- sh: node -v
msg: '{{.REQNPM}}'
- sh: command -v puppeteer || pnpm list puppeteer > /dev/null 2>&1
msg: 'Puppeteer is required. Install with: pnpm add puppeteer'
cmds:
- echo "=== Running DOSee with Puppeteer (Chrome) ==="
- node puppeteer-runner.mjs --browser chrome
puppeteer-firefox:
desc: Run DOSee in headless Firefox using Puppeteer.
aliases: [pf]
preconditions:
- sh: node -v
msg: '{{.REQNPM}}'
- sh: command -v puppeteer || pnpm list puppeteer > /dev/null 2>&1
msg: 'Puppeteer is required. Install with: pnpm add puppeteer'
cmds:
- echo "=== Running DOSee with Puppeteer (Firefox) ==="
- node puppeteer-runner.mjs --browser firefox
puppeteer-webkit:
desc: Run DOSee in headless WebKit using Puppeteer.
aliases: [pw]
preconditions:
- sh: node -v
msg: '{{.REQNPM}}'
- sh: command -v puppeteer || pnpm list puppeteer > /dev/null 2>&1
msg: 'Puppeteer is required. Install with: pnpm add puppeteer'
cmds:
- echo "=== Running DOSee with Puppeteer (WebKit) ==="
- node puppeteer-runner.mjs --browser webkit
puppeteer-browse-chrome:
desc: Run DOSee with visible Chrome window using Puppeteer.
aliases: [gc]
preconditions:
- sh: node -v
msg: '{{.REQNPM}}'
- sh: command -v puppeteer || pnpm list puppeteer > /dev/null 2>&1
msg: 'Puppeteer is required. Install with: pnpm add puppeteer'
cmds:
- echo "=== Running DOSee with Puppeteer (Headful Mode) ==="
- node puppeteer-runner.mjs --browser chrome --headful
puppeteer-browse-firefox:
desc: Run DOSee with visible Firefox window using Puppeteer.
aliases: [ff]
preconditions:
- sh: node -v
msg: '{{.REQNPM}}'
- sh: command -v puppeteer || pnpm list puppeteer > /dev/null 2>&1
msg: 'Puppeteer is required. Install with: pnpm add puppeteer'
cmds:
- echo "=== Running DOSee with Puppeteer (Headful Mode) ==="
- node puppeteer-runner.mjs --browser firefox --headful