-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmake_package.js
122 lines (105 loc) · 3.96 KB
/
make_package.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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
const AdmZip = require('adm-zip');
const FS = require('fs-extra');
// var fs = require('fs');
const glob = require('glob');
const Package = require('./package.json');
function removePackage(resource) {
let packageDir = Package.primo.build.package;
let packagePath = `${packageDir}/${resource}.zip`;
try {
FS.removeSync(packagePath);
console.log(`\tPreviously created package removed. (${packagePath})`);
} catch (error) {
console.log(error);
console.log("\tPreviously created package not found.");
}
}
function createTmpDir(resource) {
let tmp = Package.primo.build.tmp;
let tmpPackageDir = `./${tmp}/${resource}`;
try {
FS.removeSync(tmpPackageDir);
console.log("\tPrevious Tmp package dir removed");
} catch (err) {
console.log("\tPrevious Tmp package not found");
}
try {
FS.ensureDirSync(`${tmpPackageDir}`);
console.log("\tTmp package dir created");
} catch (err) {
console.log("\tUnable to create Tmp package dir ");
}
}
function copyResources(resource) {
let resourceDir = Package.primo.build.resources;
let distDir = Package.primo.build.dist;
try {
console.log("\tCopying resources html");
['general', resource].forEach(dir => {
let files = glob.sync(`${resourceDir}/${dir}/html`);
files.forEach(file => {
FS.copySync(file, `tmpPackage/${resource}/html`, { overwrite: true })
})
});
console.log("\tCopying resources img");
['general', resource].forEach(dir => {
let files = glob.sync(`${resourceDir}/${dir}/img`);
files.forEach(file => {
FS.copySync(file, `tmpPackage/${resource}/img`, { overwrite: true })
})
});
console.log("\tCopying "+distDir+" html");
var files = glob.sync(`${distDir}/${resource}/html`);
files.forEach(file => {
FS.copySync(file, `tmpPackage/${resource}/html/`, { overwrite: true })
});
console.log("\tCopying "+distDir+" img");
var files = glob.sync(`${distDir}/${resource}/img`);
files.forEach(file => {
FS.copySync(file, `tmpPackage/${resource}/img/`, { overwrite: true })
});
console.log("\tCopying "+distDir+"/css/custom1.css");
var files = glob.sync(`${distDir}/${resource}/css/custom1.css`);
files.forEach(file => {
FS.copySync(file, `tmpPackage/${resource}/css/custom1.css`, { overwrite: true })
});
console.log("\tCopying "+distDir+"/js/custom.js");
var files = glob.sync(`${distDir}/${resource}/js/custom.js`);
files.forEach(file => {
FS.copySync(file, `tmpPackage/${resource}/js/custom.js`, { overwrite: true })
});
} catch (err) {
console.error(err);
}
}
function createArchive(resource) {
let zip = new AdmZip();
let tmp = Package.primo.build.tmp;
console.log("\tCreating archive");
zip.addLocalFolder(`${tmp}/${resource}`, resource);
zip.writeZip(`package/${resource}.zip`);
}
function removeTmpDir(resource) {
let tmp = Package.primo.build.tmp;
FS.removeSync(tmp);
}
function setup(resource) {
console.log(`Packaging ${resource}`)
removePackage(resource);
createTmpDir(resource);
copyResources(resource);
createArchive(resource);
removeTmpDir(resource);
}
var viewdirs = FS.readdirSync( Package.primo.build.dist );
viewdirs.forEach( viewdir => {
// console.log ( viewdir );
setup(viewdir);
})
/*
const institution = Package.primo.institution;
for (const view of Package.primo.build.views) {
let resource = `${institution}-${view}`;
setup(resource);
}
*/