Propagate old comment on new follow
[oweals/peertube.git] / scripts / reset-password.ts
1 import * as program from 'commander'
2 import { initDatabaseModels } from '../server/initializers'
3 import { UserModel } from '../server/models/account/user'
4
5 program
6   .option('-u, --user [user]', 'User')
7   .parse(process.argv)
8
9 if (program['user'] === undefined) {
10   console.error('All parameters are mandatory.')
11   process.exit(-1)
12 }
13
14 initDatabaseModels(true)
15   .then(() => {
16     return UserModel.loadByUsername(program['user'])
17   })
18   .then(user => {
19     if (!user) {
20       console.error('User unknown.')
21       process.exit(-1)
22     }
23
24     const readline = require('readline')
25     const Writable = require('stream').Writable
26     const mutableStdout = new Writable({
27       write: function (chunk, encoding, callback) {
28         callback()
29       }
30     })
31     const rl = readline.createInterface({
32       input: process.stdin,
33       output: mutableStdout,
34       terminal: true
35     })
36
37     console.log('New password?')
38     rl.on('line', function (password) {
39       user.password = password
40
41       user.save()
42         .then(() => console.log('User password updated.'))
43         .catch(err => console.error(err))
44         .finally(() => process.exit(0))
45     })
46   })