forked from Prodigy-Hacking/PHEx
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.js
85 lines (50 loc) · 2.3 KB
/
build.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
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
"use strict";
// PHEx Build Script
// Directory Zipper
const zipdir = require("zip-dir");
// File System
const fs = require('fs');
// Prefix
const prefix = "[PHEx Builder] ";
console.log("\n");
// console.log with prefix
function log (message) {
console.log(prefix + message);
}
// Tell the user that the extension is being zipped
log("Zipping extension...");
// Zip ./src to ./build.extension.zip
zipdir("./src", { saveTo: "./build/extension.zip" }, function (err, buffer) {
// If this encounters an error, print the error and return.
if (err) return console.error(err);
// If the program has gotten to this step, then the program has not encountered any errors.
// Tell the user that extension.zip has been built.
log(".ZIP file built -> extension.zip");
// Tell the user that the extension is being copied
log("Copying extension.zip to extension.crx...");
// Copy ./build/extension.zip to ./build/extension.crx
fs.copyFile("./build/extension.zip", "./build/extension.crx", (err) => {
// If this encounters an error, print the error and return.
if (err) return console.error(err);
// If the program has gotten to this step, then the program has not encountered any errors.
// Tell the user that extension.zip has been built.
log(".CRX file built -> extension.crx\n");
// When making .crx extensions, it needs to be signed with a private key file to work.
// Tell the user that extension.crx needs to be signed if it's a production-used release.
log("IMPORTANT: IF YOU ARE MAKING AN OFFICIAL PHEx RELEASE, THEN PLEASE REMEMBER TO SIGN THE .CRX WITH A PRIVATE KEY FILE.\n");
});
// Tell the user that the extension is being copied
log("Copying extension.zip to extension.xpi...");
// Copy ./build/extension.zip to ./build/extension.xpi
fs.copyFile("./build/extension.zip", "./build/extension.xpi", (err) => {
// If this encounters an error, print the error and return.
if (err) return console.error(err);
// If the program has gotten to this step, then the program has not encountered any errors.
// Tell the user that extension.zip has been built.
log(".XPI file built -> extension.xpi");
// Tell the user that we've build the extension successfully.
log("Success!\n");
// Tell the user that we're done.
log("Done!");
});
});