@metaverse-systems/the-seed 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.aiignore +5 -0
- package/.eslintrc.json +2 -1
- package/dist/Build.js +1 -5
- package/dist/Build.js.map +1 -1
- package/dist/Config.d.ts +1 -1
- package/dist/Config.js +5 -1
- package/dist/Config.js.map +1 -1
- package/dist/ResourcePak.d.ts +26 -0
- package/dist/ResourcePak.js +110 -0
- package/dist/ResourcePak.js.map +1 -0
- package/dist/Template.js +12 -11
- package/dist/Template.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js.map +1 -1
- package/dist/scripts/BuildCLI.js +8 -5
- package/dist/scripts/BuildCLI.js.map +1 -1
- package/dist/scripts/ConfigCLI.js +1 -1
- package/dist/scripts/ConfigCLI.js.map +1 -1
- package/dist/scripts/ResourcePakCLI.d.ts +3 -0
- package/dist/scripts/ResourcePakCLI.js +37 -0
- package/dist/scripts/ResourcePakCLI.js.map +1 -0
- package/dist/scripts/the-seed.js +6 -0
- package/dist/scripts/the-seed.js.map +1 -1
- package/dist/types.d.ts +17 -0
- package/package.json +1 -1
- package/src/Build.ts +2 -6
- package/src/Config.ts +6 -2
- package/src/ResourcePak.ts +129 -0
- package/src/Template.ts +18 -17
- package/src/index.ts +5 -0
- package/src/scripts/BuildCLI.ts +8 -5
- package/src/scripts/ConfigCLI.ts +3 -3
- package/src/scripts/ResourcePakCLI.ts +38 -0
- package/src/scripts/the-seed.ts +6 -0
- package/src/types.ts +19 -0
- package/structure.md +0 -3
- package/test/Config.test.ts +10 -4
- package/test/ResourcePak.test.ts +69 -0
- package/test/Scopes.test.ts +15 -7
package/.aiignore
ADDED
package/.eslintrc.json
CHANGED
package/dist/Build.js
CHANGED
|
@@ -4,7 +4,6 @@ const { execSync } = require('child_process');
|
|
|
4
4
|
const targets = {
|
|
5
5
|
"native": "x86_64-linux-gnu",
|
|
6
6
|
"windows": "x86_64-w64-mingw32",
|
|
7
|
-
"wasm": "wasm32-unknown-emscripten",
|
|
8
7
|
};
|
|
9
8
|
const execOptions = { stdio: 'pipe' };
|
|
10
9
|
class Build {
|
|
@@ -31,7 +30,6 @@ class Build {
|
|
|
31
30
|
}
|
|
32
31
|
const prefix = this.config.config.prefix + "/" + newTarget;
|
|
33
32
|
const configure_command = "PKG_CONFIG_PATH=" + prefix + "/lib/pkgconfig/ " +
|
|
34
|
-
(this.target === "wasm" ? "emconfigure " : "") +
|
|
35
33
|
"./configure --prefix=" + prefix +
|
|
36
34
|
(this.target === "windows" ? " --host=" + targets["windows"] : "");
|
|
37
35
|
try {
|
|
@@ -49,9 +47,7 @@ class Build {
|
|
|
49
47
|
this.configure();
|
|
50
48
|
};
|
|
51
49
|
this.compile = () => {
|
|
52
|
-
const make_command =
|
|
53
|
-
"emmake make" :
|
|
54
|
-
"make -j";
|
|
50
|
+
const make_command = "make -j";
|
|
55
51
|
try {
|
|
56
52
|
const result = execSync(make_command).toString();
|
|
57
53
|
console.log(result);
|
package/dist/Build.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Build.js","sourceRoot":"","sources":["../src/Build.ts"],"names":[],"mappings":";;AACA,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAE9C,MAAM,OAAO,GAET;IACF,QAAQ,EAAE,kBAAkB;IAC5B,SAAS,EAAE,oBAAoB;
|
|
1
|
+
{"version":3,"file":"Build.js","sourceRoot":"","sources":["../src/Build.ts"],"names":[],"mappings":"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"}
|
package/dist/Config.d.ts
CHANGED
package/dist/Config.js
CHANGED
|
@@ -10,6 +10,10 @@ class Config {
|
|
|
10
10
|
scopes: {}
|
|
11
11
|
};
|
|
12
12
|
this.loadConfig = () => {
|
|
13
|
+
// if file does not exist, create it
|
|
14
|
+
if (!fs_1.default.existsSync(this.configDir + this.configFile)) {
|
|
15
|
+
this.saveConfig();
|
|
16
|
+
}
|
|
13
17
|
this.config = JSON.parse(fs_1.default.readFileSync(this.configDir + this.configFile).toString());
|
|
14
18
|
};
|
|
15
19
|
this.saveConfig = () => {
|
|
@@ -29,7 +33,7 @@ class Config {
|
|
|
29
33
|
this.config[k] = answers[k];
|
|
30
34
|
});
|
|
31
35
|
};
|
|
32
|
-
this.configDir = configDir || os_1.default.homedir() + "
|
|
36
|
+
this.configDir = configDir || os_1.default.homedir() + "/the-seed";
|
|
33
37
|
this.configFile = "/config.json";
|
|
34
38
|
this.loadConfig();
|
|
35
39
|
}
|
package/dist/Config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Config.js","sourceRoot":"","sources":["../src/Config.ts"],"names":[],"mappings":";;;AAAA,oDAAoB;AACpB,oDAAoB;AAGpB,MAAM,MAAM;IAQV,YAAY,
|
|
1
|
+
{"version":3,"file":"Config.js","sourceRoot":"","sources":["../src/Config.ts"],"names":[],"mappings":";;;AAAA,oDAAoB;AACpB,oDAAoB;AAGpB,MAAM,MAAM;IAQV,YAAY,SAAkB;QAL9B,WAAM,GAAe;YACnB,MAAM,EAAE,YAAE,CAAC,OAAO,EAAE,GAAG,WAAW;YAClC,MAAM,EAAE,EAAE;SACX,CAAC;QAQF,eAAU,GAAG,GAAG,EAAE;YAChB,oCAAoC;YACpC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE;gBACpD,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;YACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzF,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,YAAE,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3F,CAAC,CAAC;QAEF,iBAAY,GAAG,GAAG,EAAE;YAClB,OAAO;gBACL;oBACE,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,sBAAsB;oBAC/B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;iBAC/B;aACF,CAAC;QACJ,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,OAAgC,EAAE,EAAE;YAClD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACjC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QA/BA,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,YAAE,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC;QACjC,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;CA6BF;AAED,kBAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import Config from "./Config";
|
|
2
|
+
import Scopes from "./Scopes";
|
|
3
|
+
import { PackageType } from "./types";
|
|
4
|
+
declare class ResourcePak {
|
|
5
|
+
packageDir: string;
|
|
6
|
+
config: Config;
|
|
7
|
+
scopes: Scopes;
|
|
8
|
+
package?: PackageType;
|
|
9
|
+
constructor(config: Config);
|
|
10
|
+
askName: () => ({
|
|
11
|
+
type: string;
|
|
12
|
+
name: string;
|
|
13
|
+
message: string;
|
|
14
|
+
choices: string[];
|
|
15
|
+
} | {
|
|
16
|
+
name: string;
|
|
17
|
+
message: string;
|
|
18
|
+
type?: undefined;
|
|
19
|
+
choices?: undefined;
|
|
20
|
+
})[];
|
|
21
|
+
createPackage: (scope: string, name: string) => void;
|
|
22
|
+
save: () => void;
|
|
23
|
+
addResource: (name: string, filename: string) => void;
|
|
24
|
+
build: () => void;
|
|
25
|
+
}
|
|
26
|
+
export default ResourcePak;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const fs = require("fs-extra");
|
|
5
|
+
const { execSync } = require("child_process");
|
|
6
|
+
const Scopes_1 = tslib_1.__importDefault(require("./Scopes"));
|
|
7
|
+
class ResourcePak {
|
|
8
|
+
constructor(config) {
|
|
9
|
+
this.packageDir = "";
|
|
10
|
+
this.askName = () => {
|
|
11
|
+
return [
|
|
12
|
+
{
|
|
13
|
+
"type": "list",
|
|
14
|
+
"name": "scopeName",
|
|
15
|
+
"message": "Choose scope for resource pak",
|
|
16
|
+
"choices": this.scopes.getScopes()
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "pakName",
|
|
20
|
+
"message": "Choose name for resource pak"
|
|
21
|
+
}
|
|
22
|
+
];
|
|
23
|
+
};
|
|
24
|
+
this.createPackage = (scope, name) => {
|
|
25
|
+
const scopeDir = this.config.config.prefix + "/projects/" + scope;
|
|
26
|
+
if (!fs.existsSync(scopeDir)) {
|
|
27
|
+
fs.mkdirSync(scopeDir);
|
|
28
|
+
}
|
|
29
|
+
this.packageDir = scopeDir + "/" + name;
|
|
30
|
+
if (!fs.existsSync(this.packageDir)) {
|
|
31
|
+
fs.mkdirSync(this.packageDir);
|
|
32
|
+
}
|
|
33
|
+
// Create default package.json
|
|
34
|
+
execSync("npm init --yes", { cwd: this.packageDir });
|
|
35
|
+
this.package = JSON.parse(fs.readFileSync(this.packageDir + "/package.json"));
|
|
36
|
+
if (!this.package) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
this.package.author = this.scopes.getScope(scope).author;
|
|
40
|
+
this.package.license = "UNLICENSED";
|
|
41
|
+
this.package.name = scope + "/" + name;
|
|
42
|
+
this.package.version = "0.0.1";
|
|
43
|
+
this.package.scripts = {
|
|
44
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
45
|
+
"build": "the-seed resource-pak build"
|
|
46
|
+
};
|
|
47
|
+
this.package.resources = [];
|
|
48
|
+
delete this.package.main;
|
|
49
|
+
this.save();
|
|
50
|
+
};
|
|
51
|
+
this.save = () => {
|
|
52
|
+
fs.writeFileSync(this.packageDir + "/package.json", JSON.stringify(this.package, null, 2));
|
|
53
|
+
};
|
|
54
|
+
this.addResource = (name, filename) => {
|
|
55
|
+
this.packageDir = process.cwd();
|
|
56
|
+
this.package = JSON.parse(fs.readFileSync(this.packageDir + "/package.json"));
|
|
57
|
+
if (!this.package) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (this.package.resources) {
|
|
61
|
+
if (this.package.resources.find((r) => r.name === name)) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
this.package.resources = [];
|
|
67
|
+
}
|
|
68
|
+
const stats = fs.statSync(filename);
|
|
69
|
+
this.package.resources.push({
|
|
70
|
+
name: name,
|
|
71
|
+
filename: filename,
|
|
72
|
+
size: stats.size,
|
|
73
|
+
});
|
|
74
|
+
this.save();
|
|
75
|
+
};
|
|
76
|
+
this.build = () => {
|
|
77
|
+
this.packageDir = process.cwd();
|
|
78
|
+
this.package = JSON.parse(fs.readFileSync(this.packageDir + "/package.json"));
|
|
79
|
+
if (!this.package) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
// make a copy of this.package.resources that doesn't include the filename
|
|
83
|
+
// property
|
|
84
|
+
const resources = this.package.resources.map((r) => {
|
|
85
|
+
return {
|
|
86
|
+
name: r.name,
|
|
87
|
+
size: r.size,
|
|
88
|
+
attributes: r.attributes
|
|
89
|
+
};
|
|
90
|
+
});
|
|
91
|
+
const header = {
|
|
92
|
+
name: this.package.name,
|
|
93
|
+
headerSize: JSON.stringify(resources)
|
|
94
|
+
.length.toString()
|
|
95
|
+
.padStart(10, "0"),
|
|
96
|
+
resources: resources,
|
|
97
|
+
};
|
|
98
|
+
header.headerSize = (JSON.stringify(header).length + 1).toString().padStart(10, "0");
|
|
99
|
+
const [, name] = this.package.name.split("/");
|
|
100
|
+
fs.writeFileSync(this.packageDir + "/" + name + ".pak", JSON.stringify(header) + "\n");
|
|
101
|
+
this.package.resources.forEach((r) => {
|
|
102
|
+
fs.appendFileSync(name + ".pak", fs.readFileSync(r.filename));
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
this.config = config;
|
|
106
|
+
this.scopes = new Scopes_1.default(config);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
exports.default = ResourcePak;
|
|
110
|
+
//# sourceMappingURL=ResourcePak.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourcePak.js","sourceRoot":"","sources":["../src/ResourcePak.ts"],"names":[],"mappings":"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"}
|
package/dist/Template.js
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const fs = require("fs-extra");
|
|
5
|
-
const { execSync } = require(
|
|
5
|
+
const { execSync } = require("child_process");
|
|
6
6
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
7
7
|
const Scopes_1 = tslib_1.__importDefault(require("./Scopes"));
|
|
8
|
-
const build_command = "
|
|
9
|
-
const build_win64_command = "";
|
|
8
|
+
const build_command = "the-seed build native";
|
|
9
|
+
const build_win64_command = "the-seed build windows";
|
|
10
10
|
class Template {
|
|
11
11
|
constructor(config) {
|
|
12
12
|
this.type = "";
|
|
@@ -44,15 +44,16 @@ class Template {
|
|
|
44
44
|
"SKELETON": name
|
|
45
45
|
};
|
|
46
46
|
const files = [
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
47
|
+
"AUTHORS",
|
|
48
|
+
"COPYING",
|
|
49
|
+
"configure.ac",
|
|
50
|
+
"Makefile.am",
|
|
51
|
+
"src/Makefile.am",
|
|
52
|
+
"src/SKELETON.hpp",
|
|
53
|
+
"src/SKELETON.cpp"
|
|
53
54
|
];
|
|
54
55
|
if (this.type != "program") {
|
|
55
|
-
files.push(
|
|
56
|
+
files.push("SKELETON.pc.in");
|
|
56
57
|
}
|
|
57
58
|
files.forEach((file) => {
|
|
58
59
|
let temp = fs.readFileSync(this.packageDir + "/" + file).toString();
|
|
@@ -72,7 +73,7 @@ class Template {
|
|
|
72
73
|
this.packageDir = scopeDir + "/" + name;
|
|
73
74
|
this.copyTemplate(scope, name);
|
|
74
75
|
// Create default package.json
|
|
75
|
-
execSync(
|
|
76
|
+
execSync("npm init --yes", { cwd: this.packageDir });
|
|
76
77
|
this.package = JSON.parse(fs.readFileSync(this.packageDir + "/package.json"));
|
|
77
78
|
this.package.author = this.scopes.getScope(scope).author;
|
|
78
79
|
this.package.license = "UNLICENSED";
|
package/dist/Template.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Template.js","sourceRoot":"","sources":["../src/Template.ts"],"names":[],"mappings":";;;AAAA,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAC/B,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAC9C,wDAAwB;AAGxB,8DAA8B;AAE9B,MAAM,aAAa,GAAG
|
|
1
|
+
{"version":3,"file":"Template.js","sourceRoot":"","sources":["../src/Template.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,8DAA8B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,8DAA8B;AAK5B,iBALK,gBAAM,CAKL;AAJR,8DAA8B;AAK5B,iBALK,gBAAM,CAKL"}
|
package/dist/scripts/BuildCLI.js
CHANGED
|
@@ -9,14 +9,17 @@ const BuildCLI = (scriptConfig) => {
|
|
|
9
9
|
const build = new Build_1.default(config);
|
|
10
10
|
switch (command) {
|
|
11
11
|
case "help":
|
|
12
|
-
console.log("
|
|
13
|
-
console.log("
|
|
14
|
-
console.log("
|
|
15
|
-
console.log("
|
|
12
|
+
console.log("\nUsage: the-seed build <target>");
|
|
13
|
+
console.log("\nAvailable build targets:");
|
|
14
|
+
console.log(" native - Builds for the current Linux environment");
|
|
15
|
+
console.log(" windows - Cross-compiles for Windows using MinGW");
|
|
16
|
+
console.log("\nCommands:");
|
|
17
|
+
console.log(" the-seed build help - Show this help message");
|
|
18
|
+
console.log(" the-seed build native - Build for Linux");
|
|
19
|
+
console.log(" the-seed build windows - Build for Windows (MinGW)");
|
|
16
20
|
break;
|
|
17
21
|
case "native":
|
|
18
22
|
case "windows":
|
|
19
|
-
case "wasm":
|
|
20
23
|
build.reconfigure(command);
|
|
21
24
|
build.compile();
|
|
22
25
|
build.install();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuildCLI.js","sourceRoot":"","sources":["../../src/scripts/BuildCLI.ts"],"names":[],"mappings":";;;AAEA,+DAA+B;AAC/B,6DAA6B;AAG7B,MAAM,QAAQ,GAAG,CAAC,YAA4B,EAAE,EAAE;IAChD,MAAM,MAAM,GAAG,IAAI,gBAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAElD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAErC,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,MAAM,CAAC,CAAC;IAEhC,QAAO,OAAO,EACd;QACE,KAAK,MAAM;YACT,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"BuildCLI.js","sourceRoot":"","sources":["../../src/scripts/BuildCLI.ts"],"names":[],"mappings":";;;AAEA,+DAA+B;AAC/B,6DAA6B;AAG7B,MAAM,QAAQ,GAAG,CAAC,YAA4B,EAAE,EAAE;IAChD,MAAM,MAAM,GAAG,IAAI,gBAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAElD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAErC,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,MAAM,CAAC,CAAC;IAEhC,QAAO,OAAO,EACd;QACE,KAAK,MAAM;YACT,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;YACvE,MAAM;QACR,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS;YACZ,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC3B,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM;QACR;YACE,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM;KACT;AACH,CAAC,CAAC;AAEF,kBAAe,QAAQ,CAAC"}
|
|
@@ -12,6 +12,7 @@ const ConfigCLI = (scriptConfig) => {
|
|
|
12
12
|
.then(() => config.saveConfig());
|
|
13
13
|
};
|
|
14
14
|
const command = scriptConfig.args[3] || "list";
|
|
15
|
+
const subcommand = scriptConfig.args[4] || "help";
|
|
15
16
|
switch (command) {
|
|
16
17
|
case "list":
|
|
17
18
|
if (!fs_1.default.existsSync(scriptConfig.configDir + config.configFile)) {
|
|
@@ -25,7 +26,6 @@ const ConfigCLI = (scriptConfig) => {
|
|
|
25
26
|
updateConfig();
|
|
26
27
|
break;
|
|
27
28
|
case "scopes":
|
|
28
|
-
const subcommand = scriptConfig.args[4] || "help";
|
|
29
29
|
console.log(scriptConfig.binName + " " + command + " " + subcommand);
|
|
30
30
|
switch (subcommand) {
|
|
31
31
|
case "help":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigCLI.js","sourceRoot":"","sources":["../../src/scripts/ConfigCLI.ts"],"names":[],"mappings":";;;AAAA,oDAAoB;AACpB,gEAAgC;AAChC,+DAA+B;AAG/B,MAAM,SAAS,GAAG,CAAC,YAA4B,EAAE,EAAE;IACjD,MAAM,MAAM,GAAG,IAAI,gBAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,kBAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ConfigCLI.js","sourceRoot":"","sources":["../../src/scripts/ConfigCLI.ts"],"names":[],"mappings":";;;AAAA,oDAAoB;AACpB,gEAAgC;AAChC,+DAA+B;AAG/B,MAAM,SAAS,GAAG,CAAC,YAA4B,EAAE,EAAE;IACjD,MAAM,MAAM,GAAG,IAAI,gBAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,kBAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;aACnC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;aAC/C,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;IAC/C,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;IAElD,QAAO,OAAO,EACd;QACE,KAAK,MAAM;YACT,IAAG,CAAC,YAAE,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,EAAE;gBAC7D,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,GAAG,mBAAmB,GAAG,YAAY,CAAC,OAAO,GAAG,6BAA6B,CAAC,CAAC;gBACrI,MAAM;aACP;YACD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3B,MAAM;QACR,KAAK,MAAM;YACT,YAAY,EAAE,CAAC;YACf,MAAM;QACR,KAAK,QAAQ;YACX,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC;YAErE,QAAO,UAAU,EACjB;gBACE,KAAK,MAAM;oBACT,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;oBAChC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC,OAAO,GAAG,GAAG,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC;oBACnE,MAAM;gBACR,KAAK,MAAM;oBACT,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC/C,MAAM;aACT;YACD,MAAM;KACT;AACH,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const Config_1 = tslib_1.__importDefault(require("../Config"));
|
|
5
|
+
const ResourcePak_1 = tslib_1.__importDefault(require("../ResourcePak"));
|
|
6
|
+
const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
|
|
7
|
+
const ResourcePakCLI = (scriptConfig) => {
|
|
8
|
+
const config = new Config_1.default(scriptConfig.configDir);
|
|
9
|
+
const command = scriptConfig.args[3];
|
|
10
|
+
const name = scriptConfig.args[4];
|
|
11
|
+
let rp;
|
|
12
|
+
switch (command) {
|
|
13
|
+
case "help":
|
|
14
|
+
console.log("Available resource-pak commands:");
|
|
15
|
+
console.log(" create <name>");
|
|
16
|
+
console.log(" add <resource-name> <filename>");
|
|
17
|
+
console.log(" build");
|
|
18
|
+
break;
|
|
19
|
+
case "create":
|
|
20
|
+
rp = new ResourcePak_1.default(config);
|
|
21
|
+
inquirer_1.default.prompt(rp.askName())
|
|
22
|
+
.then((answers) => {
|
|
23
|
+
rp.createPackage(answers.scopeName, answers.pakName);
|
|
24
|
+
});
|
|
25
|
+
break;
|
|
26
|
+
case "add":
|
|
27
|
+
rp = new ResourcePak_1.default(config);
|
|
28
|
+
rp.addResource(name, scriptConfig.args[5]);
|
|
29
|
+
break;
|
|
30
|
+
case "build":
|
|
31
|
+
rp = new ResourcePak_1.default(config);
|
|
32
|
+
rp.build();
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
exports.default = ResourcePakCLI;
|
|
37
|
+
//# sourceMappingURL=ResourcePakCLI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourcePakCLI.js","sourceRoot":"","sources":["../../src/scripts/ResourcePakCLI.ts"],"names":[],"mappings":";;;AAAA,+DAA+B;AAE/B,yEAAyC;AACzC,gEAAgC;AAEhC,MAAM,cAAc,GAAG,CAAC,YAA4B,EAAE,EAAE;IACtD,MAAM,MAAM,GAAG,IAAI,gBAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAElC,IAAI,EAAe,CAAC;IAEpB,QAAO,OAAO,EAAE;QACd,KAAK,MAAM;YACT,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvB,MAAM;QACR,KAAK,QAAQ;YACX,EAAE,GAAG,IAAI,qBAAW,CAAC,MAAM,CAAC,CAAC;YAC7B,kBAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;iBAC1B,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;gBAChB,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;YACL,MAAM;QACR,KAAK,KAAK;YACR,EAAE,GAAG,IAAI,qBAAW,CAAC,MAAM,CAAC,CAAC;YAC7B,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM;QACR,KAAK,OAAO;YACV,EAAE,GAAG,IAAI,qBAAW,CAAC,MAAM,CAAC,CAAC;YAC7B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,MAAM;KACT;AACH,CAAC,CAAC;AAEF,kBAAe,cAAc,CAAC"}
|
package/dist/scripts/the-seed.js
CHANGED
|
@@ -8,6 +8,7 @@ const ConfigCLI_1 = tslib_1.__importDefault(require("./ConfigCLI"));
|
|
|
8
8
|
const ScopesCLI_1 = tslib_1.__importDefault(require("./ScopesCLI"));
|
|
9
9
|
const TemplateCLI_1 = tslib_1.__importDefault(require("./TemplateCLI"));
|
|
10
10
|
const BuildCLI_1 = tslib_1.__importDefault(require("./BuildCLI"));
|
|
11
|
+
const ResourcePakCLI_1 = tslib_1.__importDefault(require("./ResourcePakCLI"));
|
|
11
12
|
const homedir = os_1.default.homedir;
|
|
12
13
|
const scriptConfig = {
|
|
13
14
|
binName: path_1.default.basename(process.argv[1]),
|
|
@@ -21,6 +22,7 @@ switch (section) {
|
|
|
21
22
|
console.log(scriptConfig.binName + " config");
|
|
22
23
|
console.log(scriptConfig.binName + " scopes");
|
|
23
24
|
console.log(scriptConfig.binName + " template");
|
|
25
|
+
console.log(scriptConfig.binName + " resource-pak");
|
|
24
26
|
break;
|
|
25
27
|
case "config":
|
|
26
28
|
(0, ConfigCLI_1.default)(scriptConfig);
|
|
@@ -33,5 +35,9 @@ switch (section) {
|
|
|
33
35
|
break;
|
|
34
36
|
case "build":
|
|
35
37
|
(0, BuildCLI_1.default)(scriptConfig);
|
|
38
|
+
break;
|
|
39
|
+
case "resource-pak":
|
|
40
|
+
(0, ResourcePakCLI_1.default)(scriptConfig);
|
|
41
|
+
break;
|
|
36
42
|
}
|
|
37
43
|
//# sourceMappingURL=the-seed.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"the-seed.js","sourceRoot":"","sources":["../../src/scripts/the-seed.ts"],"names":[],"mappings":";;;;AACA,oDAAoB;AACpB,wDAAwB;AACxB,oEAAoC;AACpC,oEAAqC;AACrC,wEAAwC;AACxC,kEAAkC;
|
|
1
|
+
{"version":3,"file":"the-seed.js","sourceRoot":"","sources":["../../src/scripts/the-seed.ts"],"names":[],"mappings":";;;;AACA,oDAAoB;AACpB,wDAAwB;AACxB,oEAAoC;AACpC,oEAAqC;AACrC,wEAAwC;AACxC,kEAAkC;AAClC,8EAA8C;AAG9C,MAAM,OAAO,GAAG,YAAE,CAAC,OAAO,CAAC;AAE3B,MAAM,YAAY,GAAmB;IACnC,OAAO,EAAE,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,EAAE,OAAO,CAAC,IAAI;IAClB,SAAS,EAAE,OAAO,GAAG,WAAW;CACjC,CAAC;AAEF,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;AAE/C,QAAO,OAAO,EACd;IACE,KAAK,MAAM;QACT,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,GAAG,eAAe,CAAC,CAAC;QACpD,MAAM;IACR,KAAK,QAAQ;QACX,IAAA,mBAAS,EAAC,YAAY,CAAC,CAAC;QACxB,MAAM;IACR,KAAK,QAAQ;QACX,IAAA,mBAAS,EAAC,YAAY,CAAC,CAAC;QACxB,MAAM;IACR,KAAK,UAAU;QACb,IAAA,qBAAW,EAAC,YAAY,CAAC,CAAC;QAC1B,MAAM;IACR,KAAK,OAAO;QACV,IAAA,kBAAQ,EAAC,YAAY,CAAC,CAAC;QACvB,MAAM;IACR,KAAK,cAAc;QACjB,IAAA,wBAAc,EAAC,YAAY,CAAC,CAAC;QAC7B,MAAM;CACT"}
|
package/dist/types.d.ts
CHANGED
|
@@ -19,3 +19,20 @@ export interface ScriptArgsType {
|
|
|
19
19
|
args: string[];
|
|
20
20
|
configDir: string;
|
|
21
21
|
}
|
|
22
|
+
export interface ResourceType {
|
|
23
|
+
name: string;
|
|
24
|
+
filename: string;
|
|
25
|
+
size: number;
|
|
26
|
+
attributes?: any;
|
|
27
|
+
}
|
|
28
|
+
export interface PackageType {
|
|
29
|
+
author: AuthorType;
|
|
30
|
+
name: string;
|
|
31
|
+
license: string;
|
|
32
|
+
version: string;
|
|
33
|
+
scripts: {
|
|
34
|
+
[index: string]: string;
|
|
35
|
+
};
|
|
36
|
+
resources: ResourceType[];
|
|
37
|
+
main?: any;
|
|
38
|
+
}
|
package/package.json
CHANGED
package/src/Build.ts
CHANGED
|
@@ -6,14 +6,13 @@ const targets: {
|
|
|
6
6
|
} = {
|
|
7
7
|
"native": "x86_64-linux-gnu",
|
|
8
8
|
"windows": "x86_64-w64-mingw32",
|
|
9
|
-
"wasm": "wasm32-unknown-emscripten",
|
|
10
9
|
};
|
|
11
10
|
|
|
12
11
|
const execOptions = {stdio : 'pipe' };
|
|
13
12
|
|
|
14
13
|
class Build {
|
|
15
14
|
config: Config;
|
|
16
|
-
target
|
|
15
|
+
target = "linux";
|
|
17
16
|
|
|
18
17
|
constructor(config: Config) {
|
|
19
18
|
this.config = config;
|
|
@@ -42,7 +41,6 @@ class Build {
|
|
|
42
41
|
const prefix = this.config.config.prefix + "/" + newTarget;
|
|
43
42
|
|
|
44
43
|
const configure_command = "PKG_CONFIG_PATH=" + prefix + "/lib/pkgconfig/ " +
|
|
45
|
-
(this.target === "wasm" ? "emconfigure " : "") +
|
|
46
44
|
"./configure --prefix=" + prefix +
|
|
47
45
|
(this.target === "windows" ? " --host=" + targets["windows"] : "");
|
|
48
46
|
|
|
@@ -63,9 +61,7 @@ class Build {
|
|
|
63
61
|
}
|
|
64
62
|
|
|
65
63
|
compile = () => {
|
|
66
|
-
const make_command =
|
|
67
|
-
"emmake make" :
|
|
68
|
-
"make -j";
|
|
64
|
+
const make_command = "make -j";
|
|
69
65
|
|
|
70
66
|
try {
|
|
71
67
|
const result = execSync(make_command).toString();
|
package/src/Config.ts
CHANGED
|
@@ -10,13 +10,17 @@ class Config {
|
|
|
10
10
|
scopes: {}
|
|
11
11
|
};
|
|
12
12
|
|
|
13
|
-
constructor(configDir
|
|
14
|
-
this.configDir = configDir || os.homedir() + "
|
|
13
|
+
constructor(configDir?: string) {
|
|
14
|
+
this.configDir = configDir || os.homedir() + "/the-seed";
|
|
15
15
|
this.configFile = "/config.json";
|
|
16
16
|
this.loadConfig();
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
loadConfig = () => {
|
|
20
|
+
// if file does not exist, create it
|
|
21
|
+
if (!fs.existsSync(this.configDir + this.configFile)) {
|
|
22
|
+
this.saveConfig();
|
|
23
|
+
}
|
|
20
24
|
this.config = JSON.parse(fs.readFileSync(this.configDir + this.configFile).toString());
|
|
21
25
|
};
|
|
22
26
|
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
const fs = require("fs-extra");
|
|
2
|
+
const { execSync } = require("child_process");
|
|
3
|
+
import Config from "./Config";
|
|
4
|
+
import Scopes from "./Scopes";
|
|
5
|
+
import { PackageType } from "./types";
|
|
6
|
+
|
|
7
|
+
class ResourcePak {
|
|
8
|
+
packageDir = "";
|
|
9
|
+
config: Config;
|
|
10
|
+
scopes: Scopes;
|
|
11
|
+
package?: PackageType;
|
|
12
|
+
|
|
13
|
+
constructor(config: Config) {
|
|
14
|
+
this.config = config;
|
|
15
|
+
this.scopes = new Scopes(config);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
askName = () => {
|
|
19
|
+
return [
|
|
20
|
+
{
|
|
21
|
+
"type": "list",
|
|
22
|
+
"name": "scopeName",
|
|
23
|
+
"message": "Choose scope for resource pak",
|
|
24
|
+
"choices": this.scopes.getScopes()
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "pakName",
|
|
28
|
+
"message": "Choose name for resource pak"
|
|
29
|
+
}
|
|
30
|
+
];
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
createPackage = (scope: string, name: string) => {
|
|
34
|
+
const scopeDir = this.config.config.prefix + "/projects/" + scope;
|
|
35
|
+
if(!fs.existsSync(scopeDir)) {
|
|
36
|
+
fs.mkdirSync(scopeDir);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
this.packageDir = scopeDir + "/" + name;
|
|
40
|
+
if(!fs.existsSync(this.packageDir)) {
|
|
41
|
+
fs.mkdirSync(this.packageDir);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Create default package.json
|
|
45
|
+
execSync("npm init --yes", { cwd: this.packageDir });
|
|
46
|
+
|
|
47
|
+
this.package = JSON.parse(fs.readFileSync(this.packageDir + "/package.json"));
|
|
48
|
+
if(!this.package) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
this.package.author = this.scopes.getScope(scope).author;
|
|
52
|
+
this.package.license = "UNLICENSED";
|
|
53
|
+
this.package.name = scope + "/" + name;
|
|
54
|
+
this.package.version = "0.0.1";
|
|
55
|
+
this.package.scripts = {
|
|
56
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
57
|
+
"build": "the-seed resource-pak build"
|
|
58
|
+
};
|
|
59
|
+
this.package.resources = [];
|
|
60
|
+
delete this.package.main;
|
|
61
|
+
this.save();
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
save = () => {
|
|
65
|
+
fs.writeFileSync(
|
|
66
|
+
this.packageDir + "/package.json",
|
|
67
|
+
JSON.stringify(this.package, null, 2)
|
|
68
|
+
);
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
addResource = (name: string, filename: string) => {
|
|
72
|
+
this.packageDir = process.cwd();
|
|
73
|
+
this.package = JSON.parse(fs.readFileSync(this.packageDir + "/package.json"));
|
|
74
|
+
if (!this.package) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
if (this.package.resources) {
|
|
79
|
+
if(this.package.resources.find((r) => r.name === name)) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
} else {
|
|
83
|
+
this.package.resources = [];
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const stats = fs.statSync(filename);
|
|
87
|
+
this.package.resources.push({
|
|
88
|
+
name: name,
|
|
89
|
+
filename: filename,
|
|
90
|
+
size: stats.size,
|
|
91
|
+
});
|
|
92
|
+
this.save();
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
build = () => {
|
|
96
|
+
this.packageDir = process.cwd();
|
|
97
|
+
this.package = JSON.parse(fs.readFileSync(this.packageDir + "/package.json"));
|
|
98
|
+
if (!this.package) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// make a copy of this.package.resources that doesn't include the filename
|
|
103
|
+
// property
|
|
104
|
+
const resources = this.package.resources.map((r) => {
|
|
105
|
+
return {
|
|
106
|
+
name: r.name,
|
|
107
|
+
size: r.size,
|
|
108
|
+
attributes: r.attributes
|
|
109
|
+
};
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
const header = {
|
|
113
|
+
name: this.package.name,
|
|
114
|
+
headerSize: JSON.stringify(resources)
|
|
115
|
+
.length.toString()
|
|
116
|
+
.padStart(10, "0"),
|
|
117
|
+
resources: resources,
|
|
118
|
+
};
|
|
119
|
+
header.headerSize = (JSON.stringify(header).length + 1).toString().padStart(10, "0");
|
|
120
|
+
|
|
121
|
+
const [, name] = this.package.name.split("/");
|
|
122
|
+
fs.writeFileSync(this.packageDir + "/" + name + ".pak", JSON.stringify(header) + "\n");
|
|
123
|
+
this.package.resources.forEach((r) => {
|
|
124
|
+
fs.appendFileSync(name + ".pak", fs.readFileSync(r.filename));
|
|
125
|
+
});
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export default ResourcePak;
|
package/src/Template.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
const fs = require("fs-extra");
|
|
2
|
-
const { execSync } = require(
|
|
2
|
+
const { execSync } = require("child_process");
|
|
3
3
|
import path from "path";
|
|
4
4
|
import os from "os";
|
|
5
5
|
import Config from "./Config";
|
|
6
6
|
import Scopes from "./Scopes";
|
|
7
7
|
|
|
8
|
-
const build_command = "
|
|
9
|
-
const build_win64_command = "";
|
|
8
|
+
const build_command = "the-seed build native";
|
|
9
|
+
const build_win64_command = "the-seed build windows";
|
|
10
10
|
|
|
11
11
|
class Template {
|
|
12
|
-
type
|
|
13
|
-
packageDir
|
|
12
|
+
type = "";
|
|
13
|
+
packageDir = "";
|
|
14
14
|
config: Config;
|
|
15
15
|
scopes: Scopes;
|
|
16
16
|
package: any;
|
|
@@ -33,7 +33,7 @@ class Template {
|
|
|
33
33
|
"message": "Choose name for " + this.type
|
|
34
34
|
}
|
|
35
35
|
];
|
|
36
|
-
}
|
|
36
|
+
};
|
|
37
37
|
|
|
38
38
|
copyTemplate = (scope: string, name: string) => {
|
|
39
39
|
const templateDir = path.join(path.dirname(require.main!.filename), "../../templates/" + this.type);
|
|
@@ -62,16 +62,17 @@ class Template {
|
|
|
62
62
|
};
|
|
63
63
|
|
|
64
64
|
const files = [
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
65
|
+
"AUTHORS",
|
|
66
|
+
"COPYING",
|
|
67
|
+
"configure.ac",
|
|
68
|
+
"Makefile.am",
|
|
69
|
+
"src/Makefile.am",
|
|
70
|
+
"src/SKELETON.hpp",
|
|
71
|
+
"src/SKELETON.cpp"
|
|
71
72
|
];
|
|
72
73
|
|
|
73
74
|
if(this.type != "program") {
|
|
74
|
-
files.push(
|
|
75
|
+
files.push("SKELETON.pc.in");
|
|
75
76
|
}
|
|
76
77
|
|
|
77
78
|
files.forEach((file) => {
|
|
@@ -86,7 +87,7 @@ class Template {
|
|
|
86
87
|
fs.renameSync(this.packageDir + "/src/SKELETON.hpp", this.packageDir + "/src/" + name + ".hpp");
|
|
87
88
|
fs.renameSync(this.packageDir + "/src/SKELETON.cpp", this.packageDir + "/src/" + name + ".cpp");
|
|
88
89
|
if(this.type != "program") fs.renameSync(this.packageDir + "/SKELETON.pc.in", this.packageDir + "/" + name + ".pc.in");
|
|
89
|
-
}
|
|
90
|
+
};
|
|
90
91
|
|
|
91
92
|
createPackage = (scope: string, name: string) => {
|
|
92
93
|
const scopeDir = this.config.config.prefix + "/projects/" + scope;
|
|
@@ -94,7 +95,7 @@ class Template {
|
|
|
94
95
|
this.copyTemplate(scope, name);
|
|
95
96
|
|
|
96
97
|
// Create default package.json
|
|
97
|
-
execSync(
|
|
98
|
+
execSync("npm init --yes", { cwd: this.packageDir });
|
|
98
99
|
|
|
99
100
|
this.package = JSON.parse(fs.readFileSync(this.packageDir + "/package.json"));
|
|
100
101
|
this.package.author = this.scopes.getScope(scope).author;
|
|
@@ -108,11 +109,11 @@ class Template {
|
|
|
108
109
|
};
|
|
109
110
|
delete this.package.main;
|
|
110
111
|
this.save();
|
|
111
|
-
}
|
|
112
|
+
};
|
|
112
113
|
|
|
113
114
|
save = () => {
|
|
114
115
|
fs.writeFileSync(this.packageDir + "/package.json", JSON.stringify(this.package, null, 2));
|
|
115
|
-
}
|
|
116
|
+
};
|
|
116
117
|
}
|
|
117
118
|
|
|
118
119
|
export default Template;
|
package/src/index.ts
CHANGED
package/src/scripts/BuildCLI.ts
CHANGED
|
@@ -14,14 +14,17 @@ const BuildCLI = (scriptConfig: ScriptArgsType) => {
|
|
|
14
14
|
switch(command)
|
|
15
15
|
{
|
|
16
16
|
case "help":
|
|
17
|
-
console.log("
|
|
18
|
-
console.log("
|
|
19
|
-
console.log("
|
|
20
|
-
console.log("
|
|
17
|
+
console.log("\nUsage: the-seed build <target>");
|
|
18
|
+
console.log("\nAvailable build targets:");
|
|
19
|
+
console.log(" native - Builds for the current Linux environment");
|
|
20
|
+
console.log(" windows - Cross-compiles for Windows using MinGW");
|
|
21
|
+
console.log("\nCommands:");
|
|
22
|
+
console.log(" the-seed build help - Show this help message");
|
|
23
|
+
console.log(" the-seed build native - Build for Linux");
|
|
24
|
+
console.log(" the-seed build windows - Build for Windows (MinGW)");
|
|
21
25
|
break;
|
|
22
26
|
case "native":
|
|
23
27
|
case "windows":
|
|
24
|
-
case "wasm":
|
|
25
28
|
build.reconfigure(command);
|
|
26
29
|
build.compile();
|
|
27
30
|
build.install();
|
package/src/scripts/ConfigCLI.ts
CHANGED
|
@@ -7,11 +7,12 @@ const ConfigCLI = (scriptConfig: ScriptArgsType) => {
|
|
|
7
7
|
const config = new Config(scriptConfig.configDir);
|
|
8
8
|
const updateConfig = () => {
|
|
9
9
|
inquirer.prompt(config.getQuestions())
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
.then((answers) => config.parseAnswers(answers))
|
|
11
|
+
.then(() => config.saveConfig());
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
const command = scriptConfig.args[3] || "list";
|
|
15
|
+
const subcommand = scriptConfig.args[4] || "help";
|
|
15
16
|
|
|
16
17
|
switch(command)
|
|
17
18
|
{
|
|
@@ -27,7 +28,6 @@ const ConfigCLI = (scriptConfig: ScriptArgsType) => {
|
|
|
27
28
|
updateConfig();
|
|
28
29
|
break;
|
|
29
30
|
case "scopes":
|
|
30
|
-
const subcommand = scriptConfig.args[4] || "help";
|
|
31
31
|
console.log(scriptConfig.binName + " " + command + " " + subcommand);
|
|
32
32
|
|
|
33
33
|
switch(subcommand)
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import Config from "../Config";
|
|
2
|
+
import { ScriptArgsType } from "../types";
|
|
3
|
+
import ResourcePak from "../ResourcePak";
|
|
4
|
+
import inquirer from "inquirer";
|
|
5
|
+
|
|
6
|
+
const ResourcePakCLI = (scriptConfig: ScriptArgsType) => {
|
|
7
|
+
const config = new Config(scriptConfig.configDir);
|
|
8
|
+
const command = scriptConfig.args[3];
|
|
9
|
+
const name = scriptConfig.args[4];
|
|
10
|
+
|
|
11
|
+
let rp: ResourcePak;
|
|
12
|
+
|
|
13
|
+
switch(command) {
|
|
14
|
+
case "help":
|
|
15
|
+
console.log("Available resource-pak commands:");
|
|
16
|
+
console.log(" create <name>");
|
|
17
|
+
console.log(" add <resource-name> <filename>");
|
|
18
|
+
console.log(" build");
|
|
19
|
+
break;
|
|
20
|
+
case "create":
|
|
21
|
+
rp = new ResourcePak(config);
|
|
22
|
+
inquirer.prompt(rp.askName())
|
|
23
|
+
.then((answers) => {
|
|
24
|
+
rp.createPackage(answers.scopeName, answers.pakName);
|
|
25
|
+
});
|
|
26
|
+
break;
|
|
27
|
+
case "add":
|
|
28
|
+
rp = new ResourcePak(config);
|
|
29
|
+
rp.addResource(name, scriptConfig.args[5]);
|
|
30
|
+
break;
|
|
31
|
+
case "build":
|
|
32
|
+
rp = new ResourcePak(config);
|
|
33
|
+
rp.build();
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export default ResourcePakCLI;
|
package/src/scripts/the-seed.ts
CHANGED
|
@@ -5,6 +5,7 @@ import ConfigCLI from "./ConfigCLI";
|
|
|
5
5
|
import ScopesCLI from "./ScopesCLI";
|
|
6
6
|
import TemplateCLI from "./TemplateCLI";
|
|
7
7
|
import BuildCLI from "./BuildCLI";
|
|
8
|
+
import ResourcePakCLI from "./ResourcePakCLI";
|
|
8
9
|
import { ScriptArgsType } from "../types";
|
|
9
10
|
|
|
10
11
|
const homedir = os.homedir;
|
|
@@ -24,6 +25,7 @@ switch(section)
|
|
|
24
25
|
console.log(scriptConfig.binName + " config");
|
|
25
26
|
console.log(scriptConfig.binName + " scopes");
|
|
26
27
|
console.log(scriptConfig.binName + " template");
|
|
28
|
+
console.log(scriptConfig.binName + " resource-pak");
|
|
27
29
|
break;
|
|
28
30
|
case "config":
|
|
29
31
|
ConfigCLI(scriptConfig);
|
|
@@ -36,4 +38,8 @@ switch(section)
|
|
|
36
38
|
break;
|
|
37
39
|
case "build":
|
|
38
40
|
BuildCLI(scriptConfig);
|
|
41
|
+
break;
|
|
42
|
+
case "resource-pak":
|
|
43
|
+
ResourcePakCLI(scriptConfig);
|
|
44
|
+
break;
|
|
39
45
|
}
|
package/src/types.ts
CHANGED
|
@@ -23,3 +23,22 @@ export interface ScriptArgsType {
|
|
|
23
23
|
args: string[];
|
|
24
24
|
configDir: string;
|
|
25
25
|
}
|
|
26
|
+
|
|
27
|
+
export interface ResourceType {
|
|
28
|
+
name: string;
|
|
29
|
+
filename: string;
|
|
30
|
+
size: number;
|
|
31
|
+
attributes?: any;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface PackageType {
|
|
35
|
+
author: AuthorType;
|
|
36
|
+
name: string;
|
|
37
|
+
license: string;
|
|
38
|
+
version: string;
|
|
39
|
+
scripts: {
|
|
40
|
+
[index: string]: string;
|
|
41
|
+
};
|
|
42
|
+
resources: ResourceType[];
|
|
43
|
+
main?: any;
|
|
44
|
+
}
|
package/structure.md
CHANGED
package/test/Config.test.ts
CHANGED
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
2
|
import os from "os";
|
|
3
|
+
import path from "path";
|
|
3
4
|
import Config from "../src/Config";
|
|
4
5
|
|
|
5
6
|
const home = os.homedir();
|
|
6
7
|
const prefix = home + "/the-seed";
|
|
7
|
-
|
|
8
|
+
|
|
9
|
+
function createTempDir(): string {
|
|
10
|
+
return fs.mkdtempSync(path.join(os.tmpdir(), "config-test-"));
|
|
11
|
+
}
|
|
8
12
|
|
|
9
13
|
describe("test Config", () => {
|
|
14
|
+
let configDir: string;
|
|
15
|
+
let config: Config;
|
|
16
|
+
|
|
10
17
|
beforeAll(() => {
|
|
11
|
-
|
|
18
|
+
configDir = createTempDir();
|
|
19
|
+
config = new Config(configDir);
|
|
12
20
|
});
|
|
13
21
|
|
|
14
|
-
const config = new Config(configDir);
|
|
15
|
-
|
|
16
22
|
it("write empty config file", () => {
|
|
17
23
|
config.saveConfig();
|
|
18
24
|
});
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import os from "os";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import ResourcePak from "../src/ResourcePak";
|
|
5
|
+
import Config from "../src/Config";
|
|
6
|
+
|
|
7
|
+
// Helper to create a temporary directory for testing
|
|
8
|
+
function createTempDir(): string {
|
|
9
|
+
return fs.mkdtempSync(path.join(os.tmpdir(), "resource-pak-"));
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
describe("ResourcePak", () => {
|
|
13
|
+
let tempDir: string;
|
|
14
|
+
let config: Config;
|
|
15
|
+
let rp: ResourcePak;
|
|
16
|
+
|
|
17
|
+
beforeEach(() => {
|
|
18
|
+
tempDir = createTempDir();
|
|
19
|
+
const defaultConfig = {
|
|
20
|
+
prefix: tempDir, // or any other default values your Config expects
|
|
21
|
+
scopes: {}
|
|
22
|
+
};
|
|
23
|
+
fs.writeFileSync(path.join(tempDir, 'config.json'), JSON.stringify(defaultConfig));
|
|
24
|
+
config = new Config(tempDir);
|
|
25
|
+
rp = new ResourcePak(config, tempDir);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
afterEach(() => {
|
|
29
|
+
fs.rmSync(tempDir, { recursive: true });
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
it("should create a new package", () => {
|
|
33
|
+
const packageName = "@test/package";
|
|
34
|
+
rp.create(packageName);
|
|
35
|
+
expect(rp.package).toBeDefined();
|
|
36
|
+
expect(rp.package?.name).toBe(packageName);
|
|
37
|
+
// Add more assertions as necessary
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
it("should add a resource", () => {
|
|
41
|
+
const packageName = "@test/package";
|
|
42
|
+
rp.create(packageName);
|
|
43
|
+
|
|
44
|
+
const resourceName = "testResource";
|
|
45
|
+
const fileName = "testFile.txt";
|
|
46
|
+
// Creating a dummy file to add
|
|
47
|
+
const filePath = path.join(tempDir, fileName);
|
|
48
|
+
fs.writeFileSync(filePath, "Dummy content");
|
|
49
|
+
rp.addResource(resourceName, filePath);
|
|
50
|
+
|
|
51
|
+
expect(rp.package?.resources).toContainEqual(expect.objectContaining({
|
|
52
|
+
name: resourceName,
|
|
53
|
+
filename: tempDir + "/" + fileName,
|
|
54
|
+
// size: depends on the content written
|
|
55
|
+
}));
|
|
56
|
+
// Add more assertions as necessary
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
it("should save package configuration", () => {
|
|
60
|
+
const packageName = "@test/package";
|
|
61
|
+
rp.create(packageName);
|
|
62
|
+
rp.savePackage();
|
|
63
|
+
const packageJsonPath = path.join(tempDir, "package.json");
|
|
64
|
+
expect(fs.existsSync(packageJsonPath)).toBe(true);
|
|
65
|
+
// Further assertions on the contents of package.json can be added
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
// Add more tests for other methods, e.g., build(), as needed.
|
|
69
|
+
});
|
package/test/Scopes.test.ts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
import os from "os";
|
|
2
|
+
import path from "path";
|
|
1
3
|
import fs from "fs";
|
|
2
4
|
import Config from "../src/Config";
|
|
3
5
|
import Scopes from "../src/Scopes";
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
function createTempDir(): string {
|
|
8
|
+
return fs.mkdtempSync(path.join(os.tmpdir(), "scopes-test-"));
|
|
9
|
+
}
|
|
10
|
+
|
|
6
11
|
const scopeName1 = "@scope-" + Math.random().toString(36).substr(2, 5);
|
|
7
12
|
const scopeName2 = "scope-" + Math.random().toString(36).substr(2, 5);
|
|
8
13
|
|
|
@@ -19,14 +24,17 @@ const author2 = {
|
|
|
19
24
|
};
|
|
20
25
|
|
|
21
26
|
describe("test Scopes", () => {
|
|
27
|
+
let configDir: string;
|
|
28
|
+
let config: Config;
|
|
29
|
+
let scopes: Scopes;
|
|
30
|
+
|
|
22
31
|
beforeAll(() => {
|
|
23
|
-
|
|
32
|
+
configDir = createTempDir();
|
|
33
|
+
config = new Config(configDir);
|
|
34
|
+
config.loadConfig();
|
|
35
|
+
scopes = new Scopes(config);
|
|
24
36
|
});
|
|
25
37
|
|
|
26
|
-
const config = new Config(configDir);
|
|
27
|
-
config.loadConfig();
|
|
28
|
-
const scopes = new Scopes(config);
|
|
29
|
-
|
|
30
38
|
it("should return empty list", () => {
|
|
31
39
|
expect(scopes.getScopes().length).toEqual(0);
|
|
32
40
|
});
|
|
@@ -48,6 +56,6 @@ describe("test Scopes", () => {
|
|
|
48
56
|
});
|
|
49
57
|
|
|
50
58
|
afterAll(() => {
|
|
51
|
-
fs.rmSync(configDir, { recursive: true })
|
|
59
|
+
fs.rmSync(configDir, { recursive: true });
|
|
52
60
|
});
|
|
53
61
|
});
|