Skip to content

Commit afca4c7

Browse files
committed
chore: wip
1 parent 61398d5 commit afca4c7

File tree

3 files changed

+33
-5
lines changed

3 files changed

+33
-5
lines changed

.stacks/core/buddy/src/cli.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { env, frameworkVersion, isProjectCreated } from '@stacksjs/utils'
77
import { projectPath } from '@stacksjs/path'
88
import { Action } from '@stacksjs/types'
99
import semver from 'semver'
10-
import { build, changelog, clean, commit, create, dev, example, fresh, generate, key, lint, make, migrate, preinstall, prepublish, release, seed, setup, test, update } from './commands'
10+
import { build, changelog, clean, commit, create, dev, example, fresh, generate, key, lint, make, migrate, preinstall, prepublish, release, seed, setup, test, update, version } from './commands'
1111

1212
const cli = command('stacks')
1313

@@ -57,6 +57,7 @@ async function main() {
5757
await seed(cli)
5858
await example(cli)
5959
await test(cli)
60+
await version(cli)
6061

6162
cli.help()
6263
cli.version(await frameworkVersion())
@@ -72,12 +73,9 @@ function installIfVersionMismatch(): void {
7273
const installedVersion = execSync('pnpm -v', { encoding: 'utf8' }).trim()
7374

7475
if (!semver.satisfies(installedVersion, requiredVersion)) {
75-
console.log(`Installed pnpm version (${installedVersion}) does not satisfy required version (${requiredVersion}). Installing...`)
76+
log.error(`Installed pnpm version (${installedVersion}) does not satisfy required version (${requiredVersion}). Installing...`)
7677
execSync('pnpm i -g pnpm', { stdio: 'inherit' })
7778
}
78-
else {
79-
console.log(`Installed pnpm version (${installedVersion}) satisfies required version (${requiredVersion}).`)
80-
}
8179
}
8280

8381
function errorHandler(error: Error): void {

.stacks/core/buddy/src/commands/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,4 @@ export * from './setup'
2222
export * from './test'
2323
export * from './types'
2424
export * from './update'
25+
export * from './version'
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import type { CLI, FreshOptions } from '@stacksjs/types'
2+
import { bold, dim, green, intro } from '@stacksjs/cli'
3+
import { filesystem } from '@stacksjs/storage'
4+
import { log } from '@stacksjs/logging'
5+
import { frameworkPath } from '@stacksjs/path'
6+
const { fs } = filesystem
7+
8+
async function version(buddy: CLI) {
9+
const descriptions = {
10+
version: 'Retrieving Stacks build version',
11+
}
12+
13+
buddy
14+
.command('version', descriptions.version)
15+
.action(async (options: FreshOptions) => {
16+
const perf = await intro('buddy version')
17+
18+
const depVersions = JSON.parse(fs.readFileSync('./package.json', 'utf8'))
19+
const nodeVersion = depVersions.engines.node.replace('>=v', '')
20+
const pnpmVersion = depVersions.engines.pnpm.replace('>=', '')
21+
const stacksVersion = JSON.parse(fs.readFileSync(frameworkPath('/package.json'), 'utf8'))
22+
23+
log.info(green(bold('Stacks: ')) + dim(` ${stacksVersion.version}`))
24+
log.info(green(bold('node: ')) + dim(` ${nodeVersion}`))
25+
log.info(green(bold('pnpm: ')) + dim(` ${pnpmVersion}`))
26+
})
27+
}
28+
29+
export { version }

0 commit comments

Comments
 (0)