chore: reset repository history
This commit is contained in:
commit
b451771169
172 files changed
+26281
No files matched your search
@@ -0,0 +1,79 @@
|
||||
import { readdirSync } from 'node:fs'
|
||||
import { dirname, extname, join, resolve } from 'node:path'
|
||||
import { spawnSync } from 'node:child_process'
|
||||
import { fileURLToPath } from 'node:url'
|
||||
|
||||
const scriptDir = dirname(fileURLToPath(import.meta.url))
|
||||
const rootDir = resolve(scriptDir, '..')
|
||||
const apiDir = join(rootDir, 'apps', 'api')
|
||||
const write = process.argv.includes('--write')
|
||||
|
||||
const ignoredDirectories = new Set(['.git', '.idea', '.vscode', 'bin', 'node_modules'])
|
||||
|
||||
function collectGoFiles(dir) {
|
||||
const entries = readdirSync(dir, { withFileTypes: true })
|
||||
const files = []
|
||||
|
||||
for (const entry of entries) {
|
||||
if (entry.isDirectory()) {
|
||||
if (ignoredDirectories.has(entry.name)) {
|
||||
continue
|
||||
}
|
||||
|
||||
files.push(...collectGoFiles(join(dir, entry.name)))
|
||||
continue
|
||||
}
|
||||
|
||||
if (extname(entry.name) === '.go') {
|
||||
files.push(join(dir, entry.name))
|
||||
}
|
||||
}
|
||||
|
||||
return files
|
||||
}
|
||||
|
||||
const goFiles = collectGoFiles(apiDir).sort()
|
||||
|
||||
if (goFiles.length === 0) {
|
||||
console.log('No Go files found under apps/api.')
|
||||
process.exit(0)
|
||||
}
|
||||
|
||||
const commandArgs = [write ? '-w' : '-l', ...goFiles]
|
||||
const result = spawnSync('gofmt', commandArgs, {
|
||||
cwd: rootDir,
|
||||
encoding: 'utf8',
|
||||
stdio: write ? 'inherit' : ['ignore', 'pipe', 'pipe'],
|
||||
})
|
||||
|
||||
if (result.error) {
|
||||
console.error(`Failed to run gofmt: ${result.error.message}`)
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
if (typeof result.status === 'number' && result.status !== 0) {
|
||||
if (result.stderr) {
|
||||
console.error(result.stderr.trim())
|
||||
}
|
||||
process.exit(result.status)
|
||||
}
|
||||
|
||||
if (write) {
|
||||
console.log(`Formatted ${goFiles.length} Go files with gofmt.`)
|
||||
process.exit(0)
|
||||
}
|
||||
|
||||
const unformattedFiles = result.stdout
|
||||
.split(/\r?\n/)
|
||||
.map((line) => line.trim())
|
||||
.filter(Boolean)
|
||||
|
||||
if (unformattedFiles.length > 0) {
|
||||
console.error('Go files need formatting:')
|
||||
for (const file of unformattedFiles) {
|
||||
console.error(file)
|
||||
}
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
console.log(`Checked ${goFiles.length} Go files with gofmt.`)
|
||||
Reference in new issue
Block a user