-
Notifications
You must be signed in to change notification settings - Fork 221
/
key.js
31 lines (25 loc) · 1.01 KB
/
key.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
'use strict'
let co = require('co')
let cli = require('heroku-cli-util')
let error = require('../../lib/error.js')
let readFile = require('../../lib/read_file.js')
let sslDoctor = require('../../lib/ssl_doctor.js')
function * run (context) {
if (context.args.length < 2) {
error.exit(1, 'Usage: heroku certs:key CRT KEY [KEY ...]\nMust specify one certificate file and at least one key file.')
}
let res = yield context.args.map(function (arg) { return readFile(arg) })
let body = JSON.parse(yield sslDoctor('resolve-chain-and-key', res, 'Testing for signing key'))
cli.console.writeLog(body.key)
}
module.exports = {
topic: 'certs',
command: 'key',
description: 'print the correct key for the given certificate',
help: 'You must pass one single certificate, and one or more keys.\nThe first key that signs the certificate will be printed back.',
examples: '$ heroku certs:key example.com.crt example.com.key',
needsApp: true,
needsAuth: true,
variableArgs: true,
run: cli.command(co.wrap(run))
}