Son CV dans un terminal web en Javascript! https://terminal-cv.gregandev.fr
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

103 lines
2.3 KiB

#!/usr/bin/env node
const generate = require('../dist/astring').generate
const version = require('../package').version
const fs = require('fs')
const path = require('path')
const argv = process.argv.slice(2)
const options = {
indent: ' ',
lindeEnd: '\n',
startingIndentLevel: 0,
}
const files = []
function printHelp(status) {
// eslint-disable-next-line no-console
const print = status === 0 ? console.log : console.error
const binName = path.basename(process.argv[1])
print('Usage: ' + binName + ' [-h, --help] [-v, --version]')
print(
' ' +
binName +
' [-i, --indent INDENT] [-l, --line-end LINE_END] [-s, --starting-indent-level LEVEL] files...',
)
process.exit(status)
}
function printVersion() {
// eslint-disable-next-line no-console
console.log(version)
process.exit(0)
}
for (let i = 0, length = argv.length; i < length; i++) {
let arg = argv[i]
if (arg[0] === '-') {
switch (arg) {
case '-i':
case '--indent':
options.indent = argv[++i]
break
case '-l':
case '--line-end':
options.lineEnd = argv[++i]
break
case '-s':
case '--starting-indent-level':
options.startingIndentLevel = parseInt(argv[++i])
break
case '-h':
case '--help':
printHelp(0)
break
case '-v':
case '--version':
printVersion()
break
default:
console.error('Option "' + arg + '" not supported.')
printHelp(1)
break
}
} else {
files.push(arg)
}
}
options.output = process.stdout
if (files.length === 0) {
let data = ''
process.stdin.setEncoding('utf8')
process.stdin.resume()
process.stdin
.on('data', function (chunk) {
data += chunk
})
.on('end', function () {
try {
generate(JSON.parse(data), options)
} catch (error) {
console.error('Error: ' + error.message)
process.exit(1)
}
})
} else {
let hasError = false
for (let i = 0, length = files.length; i < length; i++) {
try {
let file = files[i]
generate(JSON.parse(fs.readFileSync(file, 'utf8')), options)
} catch (error) {
console.error('Error: ' + error.message)
if (hasError !== true) {
hasError = true
}
}
}
if (hasError) {
process.exit(1)
}
}