Add ability to filter per job type
[oweals/peertube.git] / server / tools / peertube-get-access-token.ts
1 import { registerTSPaths } from '../helpers/register-ts-paths'
2 registerTSPaths()
3
4 import * as program from 'commander'
5 import { getClient, Server, serverLogin } from '../../shared/extra-utils'
6
7 program
8   .option('-u, --url <url>', 'Server url')
9   .option('-n, --username <username>', 'Username')
10   .option('-p, --password <token>', 'Password')
11   .parse(process.argv)
12
13 if (
14   !program['url'] ||
15   !program['username'] ||
16   !program['password']
17 ) {
18   if (!program['url']) console.error('--url field is required.')
19   if (!program['username']) console.error('--username field is required.')
20   if (!program['password']) console.error('--password field is required.')
21
22   process.exit(-1)
23 }
24
25 getClient(program.url)
26   .then(res => {
27     const server = {
28       url: program['url'],
29       user: {
30         username: program['username'],
31         password: program['password']
32       },
33       client: {
34         id: res.body.client_id,
35         secret: res.body.client_secret
36       }
37     } as Server
38
39     return serverLogin(server)
40   })
41   .then(accessToken => {
42     console.log(accessToken)
43     process.exit(0)
44   })
45   .catch(err => {
46     console.error(err)
47     process.exit(-1)
48   })