-
Notifications
You must be signed in to change notification settings - Fork 38
/
index.js
executable file
·33 lines (26 loc) · 1000 Bytes
/
index.js
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
#!/usr/bin/env node
const program = require('commander')
const chalk = require('chalk')
const clipboardy = require('clipboardy')
const log = console.log
const createPassword = require('./utils/createPassword')
const savePassword = require('./utils/savePassword')
program.version('1.0.0').description('Simple Password Generator')
program
.option('-l, --length <number>', 'length of password', '8')
.option('-s, --save', 'save password to passwords.txt')
.option('-nn, --no-numbers', 'remove numbers')
.option('-ns, --no-symbols', 'remove symbols')
.parse()
const { length, save, numbers, symbols } = program.opts()
// Get generated password
const generatedPassword = createPassword(length, numbers, symbols)
// Save to file
if (save) {
savePassword(generatedPassword)
}
// Copy to clipboard
clipboardy.writeSync(generatedPassword)
// Output generated password
log(chalk.blue('Generated Password: ') + chalk.bold(generatedPassword))
log(chalk.yellow('Password copied to clipboard'))