@quenty/nevermore-cli 2.0.0-canary.367.903617a.0 → 2.0.0
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/CHANGELOG.md +40 -1
- package/dist/commands/init-game-command.d.ts +0 -1
- package/dist/commands/init-game-command.d.ts.map +1 -1
- package/dist/commands/init-game-command.js +5 -25
- package/dist/commands/init-game-command.js.map +1 -1
- package/dist/commands/init-package-command.d.ts +2 -1
- package/dist/commands/init-package-command.d.ts.map +1 -1
- package/dist/commands/init-package-command.js +14 -7
- package/dist/commands/init-package-command.js.map +1 -1
- package/dist/commands/pack-command.d.ts +18 -0
- package/dist/commands/pack-command.d.ts.map +1 -0
- package/dist/commands/pack-command.js +77 -0
- package/dist/commands/pack-command.js.map +1 -0
- package/dist/nevermore.js +2 -0
- package/dist/nevermore.js.map +1 -1
- package/dist/utils/nevermore-cli-utils.d.ts +10 -0
- package/dist/utils/nevermore-cli-utils.d.ts.map +1 -0
- package/dist/utils/nevermore-cli-utils.js +72 -0
- package/dist/utils/nevermore-cli-utils.js.map +1 -0
- package/package.json +4 -4
- package/src/commands/init-game-command.ts +12 -56
- package/src/commands/init-package-command.ts +25 -19
- package/src/commands/pack-command.ts +64 -0
- package/src/nevermore.ts +2 -0
- package/src/utils/nevermore-cli-utils.ts +44 -0
- package/templates/game-template/.github/workflows/build.yml +1 -1
- package/templates/game-template/aftman.toml +1 -1
- package/templates/game-template/default.project.json +1 -1
- package/templates/game-template/src/modules/Client/Binders/ENSURE_FOLDER_CREATED +0 -0
- package/templates/game-template/src/modules/Client/{{gameNameProper}}ServiceClient.lua +0 -1
- package/templates/game-template/src/modules/Server/Binders/ENSURE_FOLDER_CREATED +0 -0
- package/templates/game-template/src/modules/Server/{{gameNameProper}}Service.lua +1 -1
- package/templates/nevermore-library-package-template/src/Client/ENSURE_FOLDER_CREATED +0 -0
- package/templates/nevermore-library-package-template/src/Server/ENSURE_FOLDER_CREATED +0 -0
- package/templates/nevermore-library-package-template/test/default.project.json +11 -0
- package/templates/nevermore-service-package-template/README.md +23 -0
- package/templates/nevermore-service-package-template/default.project.json +6 -0
- package/templates/nevermore-service-package-template/package.json +33 -0
- package/templates/nevermore-service-package-template/src/Client/{{packageNameProper}}ServiceClient.lua +17 -0
- package/templates/nevermore-service-package-template/src/Server/{{packageNameProper}}Service.lua +17 -0
- package/templates/nevermore-service-package-template/src/Shared/ENSURE_FOLDER_CREATED +0 -0
- package/templates/nevermore-service-package-template/src/node_modules.project.json +7 -0
- package/templates/nevermore-service-package-template/test/default.project.json +21 -0
- package/templates/nevermore-service-package-template/test/scripts/Client/ClientMain.client.lua +11 -0
- package/templates/nevermore-service-package-template/test/scripts/Server/ServerMain.server.lua +14 -0
- package/templates/pack-template/README.md +3 -0
- package/templates/pack-template/default.project.json +6 -0
- package/templates/pack-template/src/init.lua +17 -0
- package/templates/pack-template/src/src.project.json +7 -0
- package/templates/pack-template/test/README.md +3 -0
- package/templates/pack-template/test/default.project.json +6 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/templates/game-template/src/modules/Client/{{gameNameProper}}BindersClient.lua +0 -12
- package/templates/game-template/src/modules/Server/{{gameNameProper}}BindersServer.lua +0 -12
- /package/templates/game-template/src/modules/{Client → Shared}/{{gameNameProper}}Translator.lua +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,7 +3,46 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
# [2.0.0
|
|
6
|
+
# [2.0.0](https://github.com/Quenty/Nevermore/compare/@quenty/nevermore-cli@1.9.0...@quenty/nevermore-cli@2.0.0) (2023-10-11)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* JSONTranslator can exist on server and generate translation keys (improved ergonomics) ([84b84b5](https://github.com/Quenty/Nevermore/commit/84b84b5587b9cfebad9b9bbda7694ba714188d9c))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [1.9.0](https://github.com/Quenty/Nevermore/compare/@quenty/nevermore-cli@1.8.1...@quenty/nevermore-cli@1.9.0) (2023-08-23)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* Fix package template ([4b1be5b](https://github.com/Quenty/Nevermore/commit/4b1be5b18267c22b6e01401d4555dd5413f0bf91))
|
|
23
|
+
* Update game-template with latest data and ideas ([922ef09](https://github.com/Quenty/Nevermore/commit/922ef0979359beaee1c4cc8085f4e1a209bf793d))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Features
|
|
27
|
+
|
|
28
|
+
* Add initial pack command (not finished yet) ([73ac451](https://github.com/Quenty/Nevermore/commit/73ac4519fb9221d95c43e2737f5eb5a3b51b563c))
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## [1.8.1](https://github.com/Quenty/Nevermore/compare/@quenty/nevermore-cli@1.8.0...@quenty/nevermore-cli@1.8.1) (2023-07-23)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
### Bug Fixes
|
|
38
|
+
|
|
39
|
+
* Escape generated workflow ([#396](https://github.com/Quenty/Nevermore/issues/396)) ([2539ae7](https://github.com/Quenty/Nevermore/commit/2539ae767c5c6b87468a065f142c01006f9444eb))
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
# [1.8.0](https://github.com/Quenty/Nevermore/compare/@quenty/nevermore-cli@1.7.0...@quenty/nevermore-cli@1.8.0) (2023-06-17)
|
|
7
46
|
|
|
8
47
|
**Note:** Version bump only for package @quenty/nevermore-cli
|
|
9
48
|
|
|
@@ -14,7 +14,6 @@ export declare class InitGameCommand<T> implements CommandModule<T, InitGameArgs
|
|
|
14
14
|
describe: string;
|
|
15
15
|
builder(args: Argv<T>): Argv<InitGameArgs>;
|
|
16
16
|
handler(args: InitGameArgs): Promise<void>;
|
|
17
|
-
private static _runCommandAsync;
|
|
18
17
|
private static _ensureGameName;
|
|
19
18
|
private static _validateGameName;
|
|
20
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-game-command.d.ts","sourceRoot":"","sources":["../../src/commands/init-game-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAI5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"init-game-command.d.ts","sourceRoot":"","sources":["../../src/commands/init-game-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAI5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAM1D,MAAM,WAAW,YAAa,SAAQ,mBAAmB;IACvD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,eAAe,CAAC,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,EAAE,YAAY,CAAC;IAChE,OAAO,SAAsB;IAC7B,QAAQ,SACsB;IAE9B,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IASf,OAAO,CAAC,IAAI,EAAE,YAAY;mBA8ClB,eAAe;IAYpC,OAAO,CAAC,MAAM,CAAC,iBAAiB;CASjC"}
|
|
@@ -39,14 +39,14 @@ exports.InitGameCommand = void 0;
|
|
|
39
39
|
const path = __importStar(require("path"));
|
|
40
40
|
const cli_output_helpers_1 = require("@quenty/cli-output-helpers");
|
|
41
41
|
const nevermore_template_helpers_1 = require("@quenty/nevermore-template-helpers");
|
|
42
|
-
const
|
|
42
|
+
const nevermore_cli_utils_1 = require("../utils/nevermore-cli-utils");
|
|
43
43
|
/**
|
|
44
44
|
* Creates a new game with Nevermore dependencies
|
|
45
45
|
*/
|
|
46
46
|
class InitGameCommand {
|
|
47
47
|
constructor() {
|
|
48
48
|
this.command = 'init [game-name]';
|
|
49
|
-
this.describe = 'Initializes a new game
|
|
49
|
+
this.describe = 'Initializes a new game template.';
|
|
50
50
|
}
|
|
51
51
|
builder(args) {
|
|
52
52
|
args.positional('game-name', {
|
|
@@ -62,7 +62,7 @@ class InitGameCommand {
|
|
|
62
62
|
const gameName = nevermore_template_helpers_1.TemplateHelper.camelize(rawGameName).toLowerCase();
|
|
63
63
|
const gameNameProper = nevermore_template_helpers_1.TemplateHelper.camelize(rawGameName);
|
|
64
64
|
const srcRoot = process.cwd();
|
|
65
|
-
const templatePath =
|
|
65
|
+
const templatePath = (0, nevermore_cli_utils_1.getTemplatePathByName)('game-template');
|
|
66
66
|
cli_output_helpers_1.OutputHelper.info(`Creating a new game at '${srcRoot}' with template '${templatePath}'`);
|
|
67
67
|
yield nevermore_template_helpers_1.TemplateHelper.createDirectoryContentsAsync(templatePath, srcRoot, {
|
|
68
68
|
gameName: gameName,
|
|
@@ -75,11 +75,11 @@ class InitGameCommand {
|
|
|
75
75
|
'@quenty/clienttranslator',
|
|
76
76
|
'@quenty/cmdrservice',
|
|
77
77
|
];
|
|
78
|
-
yield
|
|
78
|
+
yield (0, nevermore_cli_utils_1.runCommandAsync)(args, 'npm', ['install', ...packages], {
|
|
79
79
|
cwd: srcRoot,
|
|
80
80
|
});
|
|
81
81
|
try {
|
|
82
|
-
yield
|
|
82
|
+
yield (0, nevermore_cli_utils_1.runCommandAsync)(args, 'selene', ['generate-roblox-std'], {
|
|
83
83
|
cwd: srcRoot,
|
|
84
84
|
});
|
|
85
85
|
}
|
|
@@ -88,26 +88,6 @@ class InitGameCommand {
|
|
|
88
88
|
}
|
|
89
89
|
});
|
|
90
90
|
}
|
|
91
|
-
static _runCommandAsync(initGameArgs, command, args, options) {
|
|
92
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
93
|
-
if (initGameArgs.dryrun) {
|
|
94
|
-
cli_output_helpers_1.OutputHelper.info(`[DRYRUN]: Would have ran \`${command} ${args.join(' ')}\``);
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
cli_output_helpers_1.OutputHelper.info(`Running \`${command} ${args.join(' ')}\``);
|
|
98
|
-
const commandExec = execa(command, args, options);
|
|
99
|
-
if (commandExec.stdout) {
|
|
100
|
-
commandExec.stdout.pipe(process.stdout);
|
|
101
|
-
}
|
|
102
|
-
if (commandExec.stderr) {
|
|
103
|
-
commandExec.stderr.pipe(process.stderr);
|
|
104
|
-
}
|
|
105
|
-
const result = yield commandExec;
|
|
106
|
-
cli_output_helpers_1.OutputHelper.info(`Finished running '${result.command}'`);
|
|
107
|
-
return result;
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
91
|
static _ensureGameName(args) {
|
|
112
92
|
return __awaiter(this, void 0, void 0, function* () {
|
|
113
93
|
let { gameName } = args;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-game-command.js","sourceRoot":"","sources":["../../src/commands/init-game-command.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGH,2CAA6B;AAC7B,mEAA0D;AAC1D,mFAAoE;AAEpE
|
|
1
|
+
{"version":3,"file":"init-game-command.js","sourceRoot":"","sources":["../../src/commands/init-game-command.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGH,2CAA6B;AAC7B,mEAA0D;AAC1D,mFAAoE;AAEpE,sEAGsC;AAMtC;;GAEG;AACH,MAAa,eAAe;IAA5B;QACS,YAAO,GAAG,kBAAkB,CAAC;QAC7B,aAAQ,GACb,kCAAkC,CAAC;IA8EvC,CAAC;IA5EQ,OAAO,CAAC,IAAa;QAC1B,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YAC3B,QAAQ,EAAE,iCAAiC;YAC3C,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QACH,OAAO,IAA0B,CAAC;IACpC,CAAC;IAEY,OAAO,CAAC,IAAkB;;YACrC,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAEhE,MAAM,QAAQ,GAAG,2CAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;YACpE,MAAM,cAAc,GAAG,2CAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAE5D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,IAAA,2CAAqB,EAAC,eAAe,CAAC,CAAC;YAE5D,iCAAY,CAAC,IAAI,CACf,2BAA2B,OAAO,oBAAoB,YAAY,GAAG,CACtE,CAAC;YAEF,MAAM,2CAAc,CAAC,4BAA4B,CAC/C,YAAY,EACZ,OAAO,EACP;gBACE,QAAQ,EAAE,QAAQ;gBAClB,cAAc,EAAE,cAAc;aAC/B,EACD,IAAI,CAAC,MAAM,CACZ,CAAC;YAEF,MAAM,QAAQ,GAAG;gBACf,gBAAgB;gBAChB,oBAAoB;gBACpB,gBAAgB;gBAChB,0BAA0B;gBAC1B,qBAAqB;aACtB,CAAC;YAEF,MAAM,IAAA,qCAAe,EAAC,IAAI,EAAE,KAAK,EAAE,CAAC,SAAS,EAAE,GAAG,QAAQ,CAAC,EAAE;gBAC3D,GAAG,EAAE,OAAO;aACb,CAAC,CAAC;YAEH,IAAI;gBACF,MAAM,IAAA,qCAAe,EAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE;oBAC7D,GAAG,EAAE,OAAO;iBACb,CAAC,CAAC;aACJ;YAAC,WAAM;gBACN,iCAAY,CAAC,IAAI,CACf,kEAAkE,CACnE,CAAC;aACH;QACH,CAAC;KAAA;IAEO,MAAM,CAAO,eAAe,CAAC,IAAkB;;YACrD,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;YAExB,IAAI,CAAC,QAAQ,EAAE;gBACb,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;aACzC;YAED,eAAe,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAE5C,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;IAEO,MAAM,CAAC,iBAAiB,CAAC,IAAY;QAC3C,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SAClD;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;SAC7D;IACH,CAAC;CACF;AAjFD,0CAiFC"}
|
|
@@ -6,6 +6,7 @@ import { NevermoreGlobalArgs } from '../args/global-args';
|
|
|
6
6
|
export interface InitPackageArgs extends NevermoreGlobalArgs {
|
|
7
7
|
packageName: string;
|
|
8
8
|
description: string;
|
|
9
|
+
packageTemplate: 'library' | 'service';
|
|
9
10
|
}
|
|
10
11
|
/**
|
|
11
12
|
* Creates a new package within Nevermore
|
|
@@ -13,7 +14,7 @@ export interface InitPackageArgs extends NevermoreGlobalArgs {
|
|
|
13
14
|
export declare class InitPackageCommand<T> implements CommandModule<T, InitPackageArgs> {
|
|
14
15
|
command: string;
|
|
15
16
|
describe: string;
|
|
16
|
-
builder(args: Argv<T>):
|
|
17
|
+
builder(args: Argv<T>): any;
|
|
17
18
|
handler(args: InitPackageArgs): Promise<void>;
|
|
18
19
|
private static _ensurePackageName;
|
|
19
20
|
private static validatePackageName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-package-command.d.ts","sourceRoot":"","sources":["../../src/commands/init-package-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAI5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"init-package-command.d.ts","sourceRoot":"","sources":["../../src/commands/init-package-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAI5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1D,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,SAAS,GAAG,SAAS,CAAC;CACxC;AAED;;GAEG;AACH,qBAAa,kBAAkB,CAAC,CAAC,CAC/B,YAAW,aAAa,CAAC,CAAC,EAAE,eAAe,CAAC;IAErC,OAAO,SACmD;IAC1D,QAAQ,SAAiD;IAEzD,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAqBf,OAAO,CAAC,IAAI,EAAE,eAAe;mBA4BrB,kBAAkB;IAcvC,OAAO,CAAC,MAAM,CAAC,mBAAmB;mBAUb,kBAAkB;IAUvC,OAAO,CAAC,MAAM,CAAC,mBAAmB;CASnC"}
|
|
@@ -39,35 +39,42 @@ exports.InitPackageCommand = void 0;
|
|
|
39
39
|
const path = __importStar(require("path"));
|
|
40
40
|
const cli_output_helpers_1 = require("@quenty/cli-output-helpers");
|
|
41
41
|
const nevermore_template_helpers_1 = require("@quenty/nevermore-template-helpers");
|
|
42
|
+
const nevermore_cli_utils_1 = require("../utils/nevermore-cli-utils");
|
|
42
43
|
/**
|
|
43
44
|
* Creates a new package within Nevermore
|
|
44
45
|
*/
|
|
45
46
|
class InitPackageCommand {
|
|
46
47
|
constructor() {
|
|
47
|
-
this.command = 'init-package [package-name] [description]';
|
|
48
|
+
this.command = 'init-package [package-name] [description] [package-template]';
|
|
48
49
|
this.describe = 'Initializes a new package within Nevermore.';
|
|
49
50
|
}
|
|
50
51
|
builder(args) {
|
|
51
|
-
args
|
|
52
|
+
let result = args
|
|
53
|
+
.positional('package-name', {
|
|
52
54
|
describe: 'Name of the new package folder.',
|
|
53
55
|
demandOption: true,
|
|
54
56
|
type: 'string',
|
|
55
|
-
})
|
|
56
|
-
|
|
57
|
+
})
|
|
58
|
+
.positional('description', {
|
|
57
59
|
describe: 'The description of the package.',
|
|
58
60
|
demandOption: true,
|
|
59
61
|
type: 'string',
|
|
62
|
+
})
|
|
63
|
+
.positional('package-template', {
|
|
64
|
+
describe: 'The template type to use.',
|
|
65
|
+
default: 'library',
|
|
66
|
+
choices: ['library', 'service'],
|
|
60
67
|
});
|
|
61
|
-
return
|
|
68
|
+
return result;
|
|
62
69
|
}
|
|
63
70
|
handler(args) {
|
|
64
71
|
return __awaiter(this, void 0, void 0, function* () {
|
|
65
|
-
|
|
72
|
+
let rawPackageName = yield InitPackageCommand._ensurePackageName(args);
|
|
66
73
|
const packageName = nevermore_template_helpers_1.TemplateHelper.camelize(rawPackageName).toLowerCase();
|
|
67
74
|
const packageNameProper = nevermore_template_helpers_1.TemplateHelper.camelize(rawPackageName);
|
|
68
75
|
const description = yield InitPackageCommand._ensureDescription(args);
|
|
69
76
|
const srcRoot = process.cwd();
|
|
70
|
-
const templatePath =
|
|
77
|
+
const templatePath = (0, nevermore_cli_utils_1.getTemplatePathByName)(`nevermore-${args.packageTemplate}-package-template`);
|
|
71
78
|
cli_output_helpers_1.OutputHelper.info(`Initializing a new package at '${srcRoot}' with template '${templatePath}'`);
|
|
72
79
|
yield nevermore_template_helpers_1.TemplateHelper.createDirectoryContentsAsync(templatePath, srcRoot, {
|
|
73
80
|
packageName: packageName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-package-command.js","sourceRoot":"","sources":["../../src/commands/init-package-command.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGH,2CAA6B;AAC7B,mEAA0D;AAC1D,mFAAoE;
|
|
1
|
+
{"version":3,"file":"init-package-command.js","sourceRoot":"","sources":["../../src/commands/init-package-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Initialize a new game command
|
|
3
|
+
*/
|
|
4
|
+
import { Argv, CommandModule } from 'yargs';
|
|
5
|
+
import { NevermoreGlobalArgs } from '../args/global-args';
|
|
6
|
+
export interface PackArgs extends NevermoreGlobalArgs {
|
|
7
|
+
packageDirectory: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Creates a new game with Nevermore dependencies
|
|
11
|
+
*/
|
|
12
|
+
export declare class PackCommand<T> implements CommandModule<T, PackArgs> {
|
|
13
|
+
command: string;
|
|
14
|
+
describe: string;
|
|
15
|
+
builder(args: Argv<T>): Argv<PackArgs>;
|
|
16
|
+
handler(args: PackArgs): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=pack-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack-command.d.ts","sourceRoot":"","sources":["../../src/commands/pack-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAM1D,MAAM,WAAW,QAAS,SAAQ,mBAAmB;IACnD,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,qBAAa,WAAW,CAAC,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,EAAE,QAAQ,CAAC;IACxD,OAAO,SAAU;IACjB,QAAQ,SACsD;IAE9D,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAUf,OAAO,CAAC,IAAI,EAAE,QAAQ;CA4BpC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Initialize a new game command
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
|
+
if (mod && mod.__esModule) return mod;
|
|
23
|
+
var result = {};
|
|
24
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
25
|
+
__setModuleDefault(result, mod);
|
|
26
|
+
return result;
|
|
27
|
+
};
|
|
28
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
29
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
30
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
31
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
32
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
33
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
34
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.PackCommand = void 0;
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
const nevermore_template_helpers_1 = require("@quenty/nevermore-template-helpers");
|
|
41
|
+
const nevermore_cli_utils_1 = require("../utils/nevermore-cli-utils");
|
|
42
|
+
/**
|
|
43
|
+
* Creates a new game with Nevermore dependencies
|
|
44
|
+
*/
|
|
45
|
+
class PackCommand {
|
|
46
|
+
constructor() {
|
|
47
|
+
this.command = 'pack';
|
|
48
|
+
this.describe = 'Packs the package into a reusable rbxm file for upload to Roblox';
|
|
49
|
+
}
|
|
50
|
+
builder(args) {
|
|
51
|
+
args.positional('packageDirectory', {
|
|
52
|
+
describe: 'The directory for the package to pack. Defaults to the current directory if not specified.',
|
|
53
|
+
demandOption: false,
|
|
54
|
+
type: 'string',
|
|
55
|
+
});
|
|
56
|
+
return args;
|
|
57
|
+
}
|
|
58
|
+
handler(args) {
|
|
59
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
+
const packageDirectory = args.packageDirectory || process.cwd();
|
|
61
|
+
const templatePath = (0, nevermore_cli_utils_1.getTemplatePathByName)('pack-template');
|
|
62
|
+
const packageName = path.basename(packageDirectory);
|
|
63
|
+
const outputDirectory = path.join(packageDirectory, 'pack');
|
|
64
|
+
yield nevermore_template_helpers_1.TemplateHelper.ensureFolderAsync(outputDirectory, args.dryrun);
|
|
65
|
+
yield nevermore_template_helpers_1.TemplateHelper.createDirectoryContentsAsync(templatePath, outputDirectory, {
|
|
66
|
+
packageName: packageName,
|
|
67
|
+
exactPackageName: 'exactPackageName',
|
|
68
|
+
commit: 'commit',
|
|
69
|
+
}, args.dryrun);
|
|
70
|
+
yield (0, nevermore_cli_utils_1.runCommandAsync)(args, 'rojo', ['build', outputDirectory, '--output', `pack.rbxm`], {
|
|
71
|
+
cwd: packageDirectory,
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.PackCommand = PackCommand;
|
|
77
|
+
//# sourceMappingURL=pack-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack-command.js","sourceRoot":"","sources":["../../src/commands/pack-command.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGH,2CAA6B;AAC7B,mFAAoE;AAEpE,sEAGsC;AAMtC;;GAEG;AACH,MAAa,WAAW;IAAxB;QACS,YAAO,GAAG,MAAM,CAAC;QACjB,aAAQ,GACb,kEAAkE,CAAC;IAwCvE,CAAC;IAtCQ,OAAO,CAAC,IAAa;QAC1B,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE;YAClC,QAAQ,EACN,4FAA4F;YAC9F,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QACH,OAAO,IAAsB,CAAC;IAChC,CAAC;IAEY,OAAO,CAAC,IAAc;;YACjC,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAChE,MAAM,YAAY,GAAG,IAAA,2CAAqB,EAAC,eAAe,CAAC,CAAC;YAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAEpD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;YAE5D,MAAM,2CAAc,CAAC,iBAAiB,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACrE,MAAM,2CAAc,CAAC,4BAA4B,CAC/C,YAAY,EACZ,eAAe,EACf;gBACE,WAAW,EAAE,WAAW;gBACxB,gBAAgB,EAAE,kBAAkB;gBACpC,MAAM,EAAE,QAAQ;aACjB,EACD,IAAI,CAAC,MAAM,CACZ,CAAC;YAEF,MAAM,IAAA,qCAAe,EACnB,IAAI,EACJ,MAAM,EACN,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,CAAC,EACnD;gBACE,GAAG,EAAE,gBAAgB;aACtB,CACF,CAAC;QACJ,CAAC;KAAA;CACF;AA3CD,kCA2CC"}
|
package/dist/nevermore.js
CHANGED
|
@@ -12,6 +12,7 @@ const helpers_1 = require("yargs/helpers");
|
|
|
12
12
|
const cli_output_helpers_1 = require("@quenty/cli-output-helpers");
|
|
13
13
|
const init_game_command_1 = require("./commands/init-game-command");
|
|
14
14
|
const init_package_command_1 = require("./commands/init-package-command");
|
|
15
|
+
const pack_command_1 = require("./commands/pack-command");
|
|
15
16
|
(0, yargs_1.default)((0, helpers_1.hideBin)(process.argv))
|
|
16
17
|
.scriptName('nevermore')
|
|
17
18
|
.version()
|
|
@@ -30,6 +31,7 @@ const init_package_command_1 = require("./commands/init-package-command");
|
|
|
30
31
|
.usage(cli_output_helpers_1.OutputHelper.formatInfo('Usage: $0 <command> [options]'))
|
|
31
32
|
.command(new init_game_command_1.InitGameCommand())
|
|
32
33
|
.command(new init_package_command_1.InitPackageCommand())
|
|
34
|
+
.command(new pack_command_1.PackCommand())
|
|
33
35
|
.recommendCommands()
|
|
34
36
|
.demandCommand(1, cli_output_helpers_1.OutputHelper.formatHint("Hint: See 'raven help' for more help"))
|
|
35
37
|
.wrap(null)
|
package/dist/nevermore.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nevermore.js","sourceRoot":"","sources":["../src/nevermore.ts"],"names":[],"mappings":";;AAEA;;GAEG;;;;;AAEH,kDAA0B;AAC1B,2CAAwC;AACxC,mEAA0D;AAE1D,oEAA+D;AAC/D,0EAAqE;
|
|
1
|
+
{"version":3,"file":"nevermore.js","sourceRoot":"","sources":["../src/nevermore.ts"],"names":[],"mappings":";;AAEA;;GAEG;;;;;AAEH,kDAA0B;AAC1B,2CAAwC;AACxC,mEAA0D;AAE1D,oEAA+D;AAC/D,0EAAqE;AACrE,0DAAsD;AAEtD,IAAA,eAAK,EAAC,IAAA,iBAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACzB,UAAU,CAAC,WAAW,CAAC;KACvB,OAAO,EAAE;KACT,MAAM,CAAC,KAAK,EAAE;IACb,WAAW,EAAE,wDAAwD;IACrE,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,SAAS;CAChB,CAAC;KACD,MAAM,CAAC,QAAQ,EAAE;IAChB,WAAW,EACT,mEAAmE;IACrE,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,SAAS;CAChB,CAAC;KACD,KAAK,CAAC,iCAAY,CAAC,UAAU,CAAC,+BAA+B,CAAC,CAAC;KAC/D,OAAO,CAAC,IAAI,mCAAe,EAAS,CAAC;KACrC,OAAO,CAAC,IAAI,yCAAkB,EAAS,CAAC;KACxC,OAAO,CAAC,IAAI,0BAAW,EAAS,CAAC;KACjC,iBAAiB,EAAE;KACnB,aAAa,CACZ,CAAC,EACD,iCAAY,CAAC,UAAU,CAAC,sCAAsC,CAAC,CAChE;KACA,IAAI,CAAC,IAAI,CAAC;KACV,MAAM,EAAE,CAAC,IAAI,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { NevermoreGlobalArgs } from '../args/global-args';
|
|
2
|
+
import execa from 'execa';
|
|
3
|
+
/**
|
|
4
|
+
* Gets a temlate path by name
|
|
5
|
+
* @param name
|
|
6
|
+
* @returns
|
|
7
|
+
*/
|
|
8
|
+
export declare function getTemplatePathByName(name: string): string;
|
|
9
|
+
export declare function runCommandAsync(initGameArgs: NevermoreGlobalArgs, command: string, args: string[], options?: execa.CommonOptions<string>): Promise<any>;
|
|
10
|
+
//# sourceMappingURL=nevermore-cli-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nevermore-cli-utils.d.ts","sourceRoot":"","sources":["../../src/utils/nevermore-cli-utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,UAEjD;AAED,wBAAsB,eAAe,CACnC,YAAY,EAAE,mBAAmB,EACjC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,GACpC,OAAO,CAAC,GAAG,CAAC,CAwBd"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.runCommandAsync = exports.getTemplatePathByName = void 0;
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
const cli_output_helpers_1 = require("@quenty/cli-output-helpers");
|
|
41
|
+
const execa_1 = __importDefault(require("execa"));
|
|
42
|
+
/**
|
|
43
|
+
* Gets a temlate path by name
|
|
44
|
+
* @param name
|
|
45
|
+
* @returns
|
|
46
|
+
*/
|
|
47
|
+
function getTemplatePathByName(name) {
|
|
48
|
+
return path.join(__dirname, '..', '..', 'templates', name);
|
|
49
|
+
}
|
|
50
|
+
exports.getTemplatePathByName = getTemplatePathByName;
|
|
51
|
+
function runCommandAsync(initGameArgs, command, args, options) {
|
|
52
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
53
|
+
if (initGameArgs.dryrun) {
|
|
54
|
+
cli_output_helpers_1.OutputHelper.info(`[DRYRUN]: Would have ran \`${command} ${args.join(' ')}\``);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
cli_output_helpers_1.OutputHelper.info(`Running \`${command} ${args.join(' ')}\``);
|
|
58
|
+
const commandExec = (0, execa_1.default)(command, args, options);
|
|
59
|
+
if (commandExec.stdout) {
|
|
60
|
+
commandExec.stdout.pipe(process.stdout);
|
|
61
|
+
}
|
|
62
|
+
if (commandExec.stderr) {
|
|
63
|
+
commandExec.stderr.pipe(process.stderr);
|
|
64
|
+
}
|
|
65
|
+
const result = yield commandExec;
|
|
66
|
+
cli_output_helpers_1.OutputHelper.info(`Finished running '${result.command}'`);
|
|
67
|
+
return result;
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
exports.runCommandAsync = runCommandAsync;
|
|
72
|
+
//# sourceMappingURL=nevermore-cli-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nevermore-cli-utils.js","sourceRoot":"","sources":["../../src/utils/nevermore-cli-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,mEAA0D;AAE1D,kDAA0B;AAE1B;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,IAAY;IAChD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC;AAFD,sDAEC;AAED,SAAsB,eAAe,CACnC,YAAiC,EACjC,OAAe,EACf,IAAc,EACd,OAAqC;;QAErC,IAAI,YAAY,CAAC,MAAM,EAAE;YACvB,iCAAY,CAAC,IAAI,CACf,8BAA8B,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAC5D,CAAC;SACH;aAAM;YACL,iCAAY,CAAC,IAAI,CAAC,aAAa,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAE9D,MAAM,WAAW,GAAG,IAAA,eAAK,EAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAElD,IAAI,WAAW,CAAC,MAAM,EAAE;gBACtB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aACzC;YAED,IAAI,WAAW,CAAC,MAAM,EAAE;gBACtB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aACzC;YAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;YAEjC,iCAAY,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;YAE1D,OAAO,MAAM,CAAC;SACf;IACH,CAAC;CAAA;AA7BD,0CA6BC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quenty/nevermore-cli",
|
|
3
|
-
"version": "2.0.0
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "CLI interface for Nevermore",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Roblox",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"Quenty"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@quenty/cli-output-helpers": "1.2.0",
|
|
28
|
-
"@quenty/nevermore-template-helpers": "1.2.1",
|
|
27
|
+
"@quenty/cli-output-helpers": "^1.2.0",
|
|
28
|
+
"@quenty/nevermore-template-helpers": "^1.2.1",
|
|
29
29
|
"execa": "v5.1.1",
|
|
30
30
|
"find-git-root": "^1.0.4",
|
|
31
31
|
"inquirer": "^8.2.4",
|
|
@@ -51,5 +51,5 @@
|
|
|
51
51
|
"engines": {
|
|
52
52
|
"node": ">=16"
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "fdeae46099587019ec5fc15317dc673aed379400"
|
|
55
55
|
}
|
|
@@ -7,7 +7,10 @@ import * as path from 'path';
|
|
|
7
7
|
import { OutputHelper } from '@quenty/cli-output-helpers';
|
|
8
8
|
import { TemplateHelper } from '@quenty/nevermore-template-helpers';
|
|
9
9
|
import { NevermoreGlobalArgs } from '../args/global-args';
|
|
10
|
-
import
|
|
10
|
+
import {
|
|
11
|
+
getTemplatePathByName,
|
|
12
|
+
runCommandAsync,
|
|
13
|
+
} from '../utils/nevermore-cli-utils';
|
|
11
14
|
|
|
12
15
|
export interface InitGameArgs extends NevermoreGlobalArgs {
|
|
13
16
|
gameName: string;
|
|
@@ -19,7 +22,7 @@ export interface InitGameArgs extends NevermoreGlobalArgs {
|
|
|
19
22
|
export class InitGameCommand<T> implements CommandModule<T, InitGameArgs> {
|
|
20
23
|
public command = 'init [game-name]';
|
|
21
24
|
public describe =
|
|
22
|
-
'Initializes a new game
|
|
25
|
+
'Initializes a new game template.';
|
|
23
26
|
|
|
24
27
|
public builder(args: Argv<T>) {
|
|
25
28
|
args.positional('game-name', {
|
|
@@ -37,13 +40,7 @@ export class InitGameCommand<T> implements CommandModule<T, InitGameArgs> {
|
|
|
37
40
|
const gameNameProper = TemplateHelper.camelize(rawGameName);
|
|
38
41
|
|
|
39
42
|
const srcRoot = process.cwd();
|
|
40
|
-
const templatePath =
|
|
41
|
-
__dirname,
|
|
42
|
-
'..',
|
|
43
|
-
'..',
|
|
44
|
-
'templates',
|
|
45
|
-
'game-template'
|
|
46
|
-
);
|
|
43
|
+
const templatePath = getTemplatePathByName('game-template');
|
|
47
44
|
|
|
48
45
|
OutputHelper.info(
|
|
49
46
|
`Creating a new game at '${srcRoot}' with template '${templatePath}'`
|
|
@@ -67,24 +64,14 @@ export class InitGameCommand<T> implements CommandModule<T, InitGameArgs> {
|
|
|
67
64
|
'@quenty/cmdrservice',
|
|
68
65
|
];
|
|
69
66
|
|
|
70
|
-
await
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
['install', ...packages],
|
|
74
|
-
{
|
|
75
|
-
cwd: srcRoot,
|
|
76
|
-
}
|
|
77
|
-
);
|
|
67
|
+
await runCommandAsync(args, 'npm', ['install', ...packages], {
|
|
68
|
+
cwd: srcRoot,
|
|
69
|
+
});
|
|
78
70
|
|
|
79
71
|
try {
|
|
80
|
-
await
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
['generate-roblox-std'],
|
|
84
|
-
{
|
|
85
|
-
cwd: srcRoot,
|
|
86
|
-
}
|
|
87
|
-
);
|
|
72
|
+
await runCommandAsync(args, 'selene', ['generate-roblox-std'], {
|
|
73
|
+
cwd: srcRoot,
|
|
74
|
+
});
|
|
88
75
|
} catch {
|
|
89
76
|
OutputHelper.info(
|
|
90
77
|
'Failed to run `selene generate-roblox-std`, is selene installed?'
|
|
@@ -92,37 +79,6 @@ export class InitGameCommand<T> implements CommandModule<T, InitGameArgs> {
|
|
|
92
79
|
}
|
|
93
80
|
}
|
|
94
81
|
|
|
95
|
-
private static async _runCommandAsync(
|
|
96
|
-
initGameArgs: InitGameArgs,
|
|
97
|
-
command: string,
|
|
98
|
-
args: string[],
|
|
99
|
-
options?: execa.CommonOptions<string>
|
|
100
|
-
): Promise<any> {
|
|
101
|
-
if (initGameArgs.dryrun) {
|
|
102
|
-
OutputHelper.info(
|
|
103
|
-
`[DRYRUN]: Would have ran \`${command} ${args.join(' ')}\``
|
|
104
|
-
);
|
|
105
|
-
} else {
|
|
106
|
-
OutputHelper.info(`Running \`${command} ${args.join(' ')}\``);
|
|
107
|
-
|
|
108
|
-
const commandExec = execa(command, args, options);
|
|
109
|
-
|
|
110
|
-
if (commandExec.stdout) {
|
|
111
|
-
commandExec.stdout.pipe(process.stdout);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
if (commandExec.stderr) {
|
|
115
|
-
commandExec.stderr.pipe(process.stderr);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
const result = await commandExec;
|
|
119
|
-
|
|
120
|
-
OutputHelper.info(`Finished running '${result.command}'`);
|
|
121
|
-
|
|
122
|
-
return result;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
82
|
private static async _ensureGameName(args: InitGameArgs): Promise<string> {
|
|
127
83
|
let { gameName } = args;
|
|
128
84
|
|