Skip to content

Commit 04245e9

Browse files
chore: wip
1 parent 2d84d66 commit 04245e9

File tree

3 files changed

+146
-95
lines changed

3 files changed

+146
-95
lines changed

storage/framework/core/actions/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export {
1818
createNotification,
1919
createPage,
2020
makeAction,
21+
makeCertificate,
2122
makeComponent,
2223
makeDatabase,
2324
makeFunction,

storage/framework/core/actions/src/make.ts

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import type { MakeOptions } from '@stacksjs/types'
22
import process from 'node:process'
3-
import { italic } from '@stacksjs/cli'
3+
import { italic, runCommand } from '@stacksjs/cli'
4+
import { localUrl } from '@stacksjs/config'
45
import { Action } from '@stacksjs/enums'
56
import { handleError } from '@stacksjs/error-handling'
67
import { log } from '@stacksjs/logging'
@@ -315,6 +316,24 @@ export async function makeQueueTable(): Promise<void> {
315316
await runAction(Action.QueueTable)
316317
}
317318

319+
export async function makeCertificate(): Promise<void> {
320+
const domain = await localUrl()
321+
322+
log.info(`Creating SSL certificate...`)
323+
await runCommand(`tlsx ${domain}`, {
324+
cwd: p.storagePath('keys'),
325+
})
326+
327+
log.success('Certificate created')
328+
329+
log.info(`Installing SSL certificate...`)
330+
await runCommand(`tlsx -install`, {
331+
cwd: p.storagePath('keys'),
332+
})
333+
334+
log.success('Certificate installed')
335+
}
336+
318337
export async function createModel(options: MakeOptions): Promise<void> {
319338
const optionName = options.name
320339

storage/framework/core/buddy/src/commands/make.ts

Lines changed: 125 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
import type { CLI, MakeOptions } from '@stacksjs/types'
22
import process from 'node:process'
33
import {
4+
createMigration,
45
createModel,
56
createNotification,
7+
createPage,
68
invoke,
79
makeAction,
10+
makeCertificate,
811
makeComponent,
912
makeDatabase,
1013
makeFunction,
@@ -13,10 +16,9 @@ import {
1316
makeQueueTable,
1417
makeStack,
1518
} from '@stacksjs/actions'
16-
import { intro, italic, outro, runCommand } from '@stacksjs/cli'
17-
import { localUrl } from '@stacksjs/config'
19+
import { intro, italic, outro } from '@stacksjs/cli'
1820
import { log } from '@stacksjs/logging'
19-
import { path as p } from '@stacksjs/path'
21+
2022
import { ExitCode } from '@stacksjs/types'
2123

2224
export function make(buddy: CLI): void {
@@ -41,21 +43,21 @@ export function make(buddy: CLI): void {
4143
}
4244

4345
buddy
44-
.command('make', 'The make command')
46+
.command('make [make]', 'The make command')
4547
.option('-a, --action [action]', descriptions.action, { default: false })
46-
.option('-m, --model [model]', descriptions.model, { default: false })
4748
.option('-c, --component [component]', descriptions.component, { default: false })
48-
.option('-p, --page [page]', descriptions.page, { default: false })
49+
.option('-d, --database [database]', descriptions.database, { default: false })
50+
.option('-f, --factory [factory]', descriptions.factory, { default: false })
4951
.option('-f, --function [function]', descriptions.function, { default: false })
5052
.option('-l, --language [language]', descriptions.language, { default: false })
51-
.option('-d, --database [database]', descriptions.database, { default: false })
53+
.option('-m, --model [model]', descriptions.model, { default: false })
54+
.option('-p, --page [page]', descriptions.page, { default: false })
5255
.option('-m, --migration [migration]', descriptions.migration, { default: false })
53-
.option('-f, --factory [factory]', descriptions.factory, { default: false })
5456
.option('-n, --notification [notification]', descriptions.notification, { default: false })
5557
.option('-qt, --queue-table', descriptions.queue, { default: false })
5658
.option('-s, --stack [stack]', descriptions.stack, { default: false })
5759
.option('--verbose', descriptions.verbose, { default: false })
58-
.action(async (options: MakeOptions) => {
60+
.action(async (make: string | undefined, options: MakeOptions) => {
5961
log.debug('Running `buddy make` ...', options)
6062

6163
const name = buddy.args[0]
@@ -65,6 +67,47 @@ export function make(buddy: CLI): void {
6567
process.exit()
6668
}
6769

70+
switch (make) {
71+
case 'action':
72+
await makeAction(options)
73+
break
74+
case 'certificate':
75+
await makeCertificate()
76+
break
77+
case 'component':
78+
await makeComponent(options)
79+
break
80+
case 'database':
81+
makeDatabase(options)
82+
break
83+
case 'function':
84+
await makeFunction(options)
85+
break
86+
case 'language':
87+
await makeLanguage(options)
88+
break
89+
case 'migration':
90+
await createMigration(options)
91+
break
92+
case 'model':
93+
await createModel(options)
94+
break
95+
case 'page':
96+
await createPage(options)
97+
break
98+
case 'notification':
99+
await createNotification(options)
100+
break
101+
case 'queue:table':
102+
await makeQueueTable()
103+
break
104+
case 'stack':
105+
await makeStack(options)
106+
break
107+
108+
default:
109+
}
110+
68111
// TODO: uncomment this when prompt is ready
69112
// if (hasNoOptions(options)) {
70113
// let answers = await prompt.require()
@@ -97,6 +140,36 @@ export function make(buddy: CLI): void {
97140
process.exit(ExitCode.Success)
98141
})
99142

143+
buddy
144+
.command('make:action [name]', descriptions.action)
145+
.option('-n, --name [name]', descriptions.name, { default: false })
146+
.option('-p, --project [project]', descriptions.project, { default: false })
147+
.option('--verbose', descriptions.verbose, { default: false })
148+
.action(async (name: string, options: MakeOptions) => {
149+
log.info('Running `buddy make:action` ...')
150+
log.debug('Running `buddy make:action` ...', name, options)
151+
152+
name = name ?? options.name
153+
options.name = name
154+
155+
if (!name) {
156+
log.error('You need to specify a name. Read more about the documentation here.')
157+
process.exit()
158+
}
159+
160+
await makeAction(options)
161+
})
162+
163+
buddy
164+
.command('make:certificate', descriptions.certificate)
165+
.alias('make:cert')
166+
.example('buddy make:certificate')
167+
.action(async (options: MakeOptions) => {
168+
log.debug('Running `buddy make:certificate` ...', options)
169+
170+
await makeCertificate()
171+
})
172+
100173
buddy
101174
.command('make:component [name]', descriptions.component)
102175
.option('-n, --name [name]', descriptions.name, { default: false })
@@ -158,13 +231,23 @@ export function make(buddy: CLI): void {
158231
})
159232

160233
buddy
161-
.command('make:view [name]', descriptions.page)
162-
.alias('make:page [name]')
234+
.command('make:function [name]', descriptions.function)
235+
.option('-n, --name [name]', descriptions.name, { default: false })
236+
.option('-p, --project [project]', descriptions.project, { default: false })
237+
.option('--verbose', descriptions.verbose, { default: false })
238+
.action(async (options: MakeOptions) => {
239+
log.debug('Running `buddy make:function` ...', options)
240+
241+
await makeFunction(options)
242+
})
243+
244+
buddy
245+
.command('make:lang [name]', descriptions.language)
163246
.option('-n, --name [name]', descriptions.name, { default: false })
164247
.option('-p, --project [project]', descriptions.project, { default: false })
165248
.option('--verbose', descriptions.verbose, { default: false })
166249
.action(async (name: string, options: MakeOptions) => {
167-
log.debug('Running `buddy make:view` ...', options)
250+
log.debug('Running `buddy make:lang` ...', options)
168251

169252
name = name ?? options.name
170253
options.name = name
@@ -174,37 +257,45 @@ export function make(buddy: CLI): void {
174257
process.exit()
175258
}
176259

177-
await makePage(options)
260+
await makeLanguage(options)
178261
})
179262

180263
buddy
181-
.command('make:function [name]', descriptions.function)
264+
.command('make:migration [name]', descriptions.migration)
182265
.option('-n, --name [name]', descriptions.name, { default: false })
183266
.option('-p, --project [project]', descriptions.project, { default: false })
184267
.option('--verbose', descriptions.verbose, { default: false })
185-
.action(async (options: MakeOptions) => {
186-
log.debug('Running `buddy make:function` ...', options)
268+
.action((name: string, options: MakeOptions) => {
269+
log.debug('Running `buddy make:migration` ...', options)
187270

188-
await makeFunction(options)
271+
name = name ?? options.name
272+
options.name = name
273+
274+
if (!name) {
275+
log.error('You need to specify a migration name')
276+
process.exit()
277+
}
278+
279+
// log.info(path)
189280
})
190281

191282
buddy
192-
.command('make:lang [name]', descriptions.language)
283+
.command('make:model [name]', descriptions.model)
193284
.option('-n, --name [name]', descriptions.name, { default: false })
194285
.option('-p, --project [project]', descriptions.project, { default: false })
195286
.option('--verbose', descriptions.verbose, { default: false })
196287
.action(async (name: string, options: MakeOptions) => {
197-
log.debug('Running `buddy make:lang` ...', options)
288+
log.debug('Running `buddy make:model` ...', options)
198289

199290
name = name ?? options.name
200291
options.name = name
201292

202293
if (!name) {
203-
log.error('You need to specify a name. Read more about the documentation here.')
294+
log.error('You need to specify a model name')
204295
process.exit()
205296
}
206297

207-
await makeLanguage(options)
298+
await createModel(options)
208299
})
209300

210301
buddy
@@ -246,32 +337,22 @@ export function make(buddy: CLI): void {
246337
})
247338

248339
buddy
249-
.command('make:stack [name]', descriptions.stack)
250-
.option('-n, --name [name]', descriptions.name, { default: false })
340+
.command('make:queue-table', descriptions.migration)
251341
.option('-p, --project [project]', descriptions.project, { default: false })
252342
.option('--verbose', descriptions.verbose, { default: false })
253-
.action((name: string, options: MakeOptions) => {
254-
log.debug('Running `buddy make:stack` ...', options)
255-
256-
name = name ?? options.name
257-
options.name = name
258-
259-
if (!name) {
260-
log.error('You need to specify a name. Read more about the documentation here.')
261-
process.exit()
262-
}
343+
.action(async (options: MakeOptions) => {
344+
log.debug('Running `buddy make queue:table` ...', options)
263345

264-
makeStack(options)
346+
await makeQueueTable()
265347
})
266348

267349
buddy
268-
.command('make:action [name]', descriptions.action)
350+
.command('make:stack [name]', descriptions.stack)
269351
.option('-n, --name [name]', descriptions.name, { default: false })
270352
.option('-p, --project [project]', descriptions.project, { default: false })
271353
.option('--verbose', descriptions.verbose, { default: false })
272-
.action(async (name: string, options: MakeOptions) => {
273-
log.info('Running `buddy make:action` ...')
274-
log.debug('Running `buddy make:action` ...', name, options)
354+
.action((name: string, options: MakeOptions) => {
355+
log.debug('Running `buddy make:stack` ...', options)
275356

276357
name = name ?? options.name
277358
options.name = name
@@ -281,77 +362,27 @@ export function make(buddy: CLI): void {
281362
process.exit()
282363
}
283364

284-
await makeAction(options)
365+
makeStack(options)
285366
})
286367

287368
buddy
288-
.command('make:model [name]', descriptions.model)
369+
.command('make:view [name]', descriptions.page)
370+
.alias('make:page [name]')
289371
.option('-n, --name [name]', descriptions.name, { default: false })
290372
.option('-p, --project [project]', descriptions.project, { default: false })
291373
.option('--verbose', descriptions.verbose, { default: false })
292374
.action(async (name: string, options: MakeOptions) => {
293-
log.debug('Running `buddy make:model` ...', options)
294-
295-
name = name ?? options.name
296-
options.name = name
297-
298-
if (!name) {
299-
log.error('You need to specify a model name')
300-
process.exit()
301-
}
302-
303-
await createModel(options)
304-
})
305-
306-
buddy
307-
.command('make:migration [name]', descriptions.migration)
308-
.option('-n, --name [name]', descriptions.name, { default: false })
309-
.option('-p, --project [project]', descriptions.project, { default: false })
310-
.option('--verbose', descriptions.verbose, { default: false })
311-
.action((name: string, options: MakeOptions) => {
312-
log.debug('Running `buddy make:migration` ...', options)
375+
log.debug('Running `buddy make:view` ...', options)
313376

314377
name = name ?? options.name
315378
options.name = name
316379

317380
if (!name) {
318-
log.error('You need to specify a migration name')
381+
log.error('You need to specify a name. Read more about the documentation here.')
319382
process.exit()
320383
}
321384

322-
// log.info(path)
323-
})
324-
325-
buddy
326-
.command('make:certificate', descriptions.certificate)
327-
.alias('make:cert')
328-
.example('buddy make:certificate')
329-
.action(async (options: MakeOptions) => {
330-
log.debug('Running `buddy make:certificate` ...', options)
331-
332-
const domain = await localUrl()
333-
334-
log.info(`Creating SSL certificate...`)
335-
await runCommand(`tlsx ${domain}`, {
336-
cwd: p.storagePath('keys'),
337-
})
338-
log.success('Certificate created')
339-
340-
log.info(`Installing SSL certificate...`)
341-
await runCommand(`tlsx -install`, {
342-
cwd: p.storagePath('keys'),
343-
})
344-
log.success('Certificate installed')
345-
})
346-
347-
buddy
348-
.command('make:queue-table', descriptions.migration)
349-
.option('-p, --project [project]', descriptions.project, { default: false })
350-
.option('--verbose', descriptions.verbose, { default: false })
351-
.action(async (options: MakeOptions) => {
352-
log.debug('Running `buddy make queue:table` ...', options)
353-
354-
await makeQueueTable()
385+
await makePage(options)
355386
})
356387

357388
buddy.on('make:*', () => {

0 commit comments

Comments
 (0)