forked from openiap/opencore
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcli-lic.ts
More file actions
61 lines (61 loc) · 2.27 KB
/
Copy pathcli-lic.ts
File metadata and controls
61 lines (61 loc) · 2.27 KB
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/usr/bin/env node
import * as fs from "fs";
import { LicenseFile, license_data } from "./license-file";
function printusage() {
console.log("openflow-cli [--months 3][--email email] domain");
console.log(" --months - Set number of months, default 3");
console.log(" --email - email to use in license");
console.log(" domain - Generate ofid and create v2 license");
console.log("Requires private key to be in ./config/private_key.pem");
}
const optionDefinitions = [
{ name: 'email', type: String },
{ name: 'months', type: Number },
{ name: 'domain', type: String, defaultOption: true }
]
const commandLineArgs = require('command-line-args');
let options = null;
try {
options = commandLineArgs(optionDefinitions, { partial: true });
let months: number = 3;
if (!options.email && !options.domain) { throw new Error("Domain is mandatory"); }
if (!options.email) options.email = "";
if (options.months) {
months = parseInt(options.months);
}
if (options._unknown) {
console.log("Unknown param " + options._unknown)
process.exit();
}
if (!fs.existsSync('config/private_key.pem')) {
console.log("no such file or directory, open config/private_key.pem");
process.exit();
}
const data: license_data = {} as any;
let template = LicenseFile.template_v1;
data.licenseVersion = 1;
data.email = options.email;
if (options.domain) {
template = LicenseFile.template_v2;
data.licenseVersion = 2;
data.domain = options.domain;
}
var dt = new Date(new Date().toISOString());
dt.setMonth(dt.getMonth() + months);
data.expirationDate = dt.toISOString() as any;
const licenseFileContent = LicenseFile.generate({
privateKeyPath: 'config/private_key.pem',
template,
data: data
});
console.log(Buffer.from(licenseFileContent).toString('base64'));
// console.log("---------------------------------------------------");
// console.log(licenseFileContent);
process.exit();
} catch (error) {
console.error(error.message ? error.message : error);
printusage();
process.exit();
}
// node C:\code\openflow\dist\cli-lic.js --months 1 localhost.openiap.io
// openflow-lic --months 1 localhost.openiap.io | clip