isaacscript 1.2.28 → 1.2.29
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/dist/package.json +1 -1
- package/dist/src/commands/init/checkIfProjectPathExists.js +14 -8
- package/dist/src/commands/init/checkIfProjectPathExists.js.map +1 -1
- package/dist/src/commands/init/checkModSubdirectory.js +2 -2
- package/dist/src/commands/init/checkModSubdirectory.js.map +1 -1
- package/dist/src/commands/init/checkModTargetDirectory.js +12 -6
- package/dist/src/commands/init/checkModTargetDirectory.js.map +1 -1
- package/dist/src/commands/init/createMod.js +19 -16
- package/dist/src/commands/init/createMod.js.map +1 -1
- package/dist/src/commands/init/getProjectPath.js +9 -2
- package/dist/src/commands/init/getProjectPath.js.map +1 -1
- package/dist/src/commands/init/git.js +17 -8
- package/dist/src/commands/init/git.js.map +1 -1
- package/dist/src/commands/init/init.js +9 -6
- package/dist/src/commands/init/init.js.map +1 -1
- package/dist/src/commands/init/promptSaveSlot.js +4 -1
- package/dist/src/commands/init/promptSaveSlot.js.map +1 -1
- package/dist/src/configFile.js +2 -1
- package/dist/src/configFile.js.map +1 -1
- package/dist/src/parseArgs.js +5 -0
- package/dist/src/parseArgs.js.map +1 -1
- package/package.json +1 -1
- package/src/commands/init/checkIfProjectPathExists.ts +19 -12
- package/src/commands/init/checkModSubdirectory.ts +2 -2
- package/src/commands/init/checkModTargetDirectory.ts +17 -11
- package/src/commands/init/createMod.ts +39 -29
- package/src/commands/init/getProjectPath.ts +9 -1
- package/src/commands/init/git.ts +29 -13
- package/src/commands/init/init.ts +13 -5
- package/src/commands/init/promptSaveSlot.ts +5 -0
- package/src/configFile.ts +2 -1
- package/src/parseArgs.ts +6 -0
package/dist/package.json
CHANGED
|
@@ -32,16 +32,22 @@ const constants_1 = require("../../constants");
|
|
|
32
32
|
const file = __importStar(require("../../file"));
|
|
33
33
|
const prompt_1 = require("../../prompt");
|
|
34
34
|
const utils_1 = require("../../utils");
|
|
35
|
-
async function checkIfProjectPathExists(projectPath, verbose) {
|
|
36
|
-
if (projectPath
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
(0, utils_1.error)("Ok then. Good-bye.");
|
|
42
|
-
}
|
|
35
|
+
async function checkIfProjectPathExists(projectPath, yes, verbose) {
|
|
36
|
+
if (projectPath === constants_1.CWD || !file.exists(projectPath)) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const fileType = file.isDir(projectPath) ? "directory" : "file";
|
|
40
|
+
if (yes) {
|
|
43
41
|
file.deleteFileOrDirectory(projectPath, verbose);
|
|
42
|
+
console.log(`Deleted ${fileType}: ${chalk_1.default.green(projectPath)}`);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
console.log(`A ${fileType} already exists with a name of: ${chalk_1.default.green(projectPath)}`);
|
|
46
|
+
const shouldDelete = await (0, prompt_1.getInputYesNo)("Do you want me to delete it?");
|
|
47
|
+
if (!shouldDelete) {
|
|
48
|
+
(0, utils_1.error)("Ok then. Goodbye.");
|
|
44
49
|
}
|
|
50
|
+
file.deleteFileOrDirectory(projectPath, verbose);
|
|
45
51
|
}
|
|
46
52
|
exports.checkIfProjectPathExists = checkIfProjectPathExists;
|
|
47
53
|
//# sourceMappingURL=checkIfProjectPathExists.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkIfProjectPathExists.js","sourceRoot":"","sources":["../../../../src/commands/init/checkIfProjectPathExists.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,+CAAsC;AACtC,iDAAmC;AACnC,yCAA6C;AAC7C,uCAAoC;AAE7B,KAAK,UAAU,wBAAwB,CAC5C,WAAmB,EACnB,OAAgB;IAEhB,IAAI,WAAW,KAAK,eAAG,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"checkIfProjectPathExists.js","sourceRoot":"","sources":["../../../../src/commands/init/checkIfProjectPathExists.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,+CAAsC;AACtC,iDAAmC;AACnC,yCAA6C;AAC7C,uCAAoC;AAE7B,KAAK,UAAU,wBAAwB,CAC5C,WAAmB,EACnB,GAAY,EACZ,OAAgB;IAEhB,IAAI,WAAW,KAAK,eAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;QACpD,OAAO;KACR;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;IAEhE,IAAI,GAAG,EAAE;QACP,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,WAAW,QAAQ,KAAK,eAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAChE,OAAO;KACR;IAED,OAAO,CAAC,GAAG,CACT,KAAK,QAAQ,mCAAmC,eAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAC3E,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,IAAA,sBAAa,EAAC,8BAA8B,CAAC,CAAC;IAEzE,IAAI,CAAC,YAAY,EAAE;QACjB,IAAA,aAAK,EAAC,mBAAmB,CAAC,CAAC;KAC5B;IAED,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC;AA3BD,4DA2BC"}
|
|
@@ -30,11 +30,11 @@ exports.checkModSubdirectory = void 0;
|
|
|
30
30
|
const chalk_1 = __importDefault(require("chalk"));
|
|
31
31
|
const constants_1 = require("../../constants");
|
|
32
32
|
const file = __importStar(require("../../file"));
|
|
33
|
+
const utils_1 = require("../../utils");
|
|
33
34
|
function checkModSubdirectory(projectPath, modsDirectory) {
|
|
34
35
|
if (file.isSubDirOf(constants_1.CWD, modsDirectory)) {
|
|
35
36
|
console.error(`Error: The project directory of "${chalk_1.default.green(projectPath)}" is a subdirectory of "${chalk_1.default.green(modsDirectory)}".`);
|
|
36
|
-
|
|
37
|
-
process.exit(1);
|
|
37
|
+
(0, utils_1.error)('You are supposed to have your project folder somewhere else on the system than the Isaac mods directory. (This is because we don\'t want to upload the ".git" folder or the TypeScript files to the Steam Workshop.) Exiting.');
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
exports.checkModSubdirectory = checkModSubdirectory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkModSubdirectory.js","sourceRoot":"","sources":["../../../../src/commands/init/checkModSubdirectory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,+CAAsC;AACtC,iDAAmC;
|
|
1
|
+
{"version":3,"file":"checkModSubdirectory.js","sourceRoot":"","sources":["../../../../src/commands/init/checkModSubdirectory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,+CAAsC;AACtC,iDAAmC;AACnC,uCAAoC;AAEpC,SAAgB,oBAAoB,CAClC,WAAmB,EACnB,aAAqB;IAErB,IAAI,IAAI,CAAC,UAAU,CAAC,eAAG,EAAE,aAAa,CAAC,EAAE;QACvC,OAAO,CAAC,KAAK,CACX,oCAAoC,eAAK,CAAC,KAAK,CAC7C,WAAW,CACZ,2BAA2B,eAAK,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAC3D,CAAC;QACF,IAAA,aAAK,EACH,+NAA+N,CAChO,CAAC;KACH;AACH,CAAC;AAdD,oDAcC"}
|
|
@@ -33,16 +33,22 @@ const constants_1 = require("../../constants");
|
|
|
33
33
|
const file = __importStar(require("../../file"));
|
|
34
34
|
const prompt_1 = require("../../prompt");
|
|
35
35
|
const utils_1 = require("../../utils");
|
|
36
|
-
async function checkModTargetDirectory(modsDirectory, projectName, verbose) {
|
|
36
|
+
async function checkModTargetDirectory(modsDirectory, projectName, yes, verbose) {
|
|
37
37
|
const modTargetPath = path_1.default.join(modsDirectory, projectName);
|
|
38
38
|
if (!file.exists(modTargetPath)) {
|
|
39
39
|
return;
|
|
40
40
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
const fileType = file.isDir(modTargetPath) ? "directory" : "file";
|
|
42
|
+
if (yes) {
|
|
43
|
+
file.deleteFileOrDirectory(modTargetPath, verbose);
|
|
44
|
+
console.log(`Deleted ${fileType}: ${chalk_1.default.green(modTargetPath)}`);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
console.log(`A ${fileType} already exists at at the mod path of: ${chalk_1.default.green(modTargetPath)}`);
|
|
48
|
+
console.log(`${constants_1.PROJECT_NAME} will need to sync your project folder with this directory.`);
|
|
49
|
+
const shouldDelete = await (0, prompt_1.getInputYesNo)("Do you want me to delete it?");
|
|
50
|
+
if (!shouldDelete) {
|
|
51
|
+
(0, utils_1.error)("Ok then. Goodbye.");
|
|
46
52
|
}
|
|
47
53
|
file.deleteFileOrDirectory(modTargetPath, verbose);
|
|
48
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkModTargetDirectory.js","sourceRoot":"","sources":["../../../../src/commands/init/checkModTargetDirectory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,gDAAwB;AACxB,+CAA+C;AAC/C,iDAAmC;AACnC,yCAA6C;AAC7C,uCAAoC;AAE7B,KAAK,UAAU,uBAAuB,CAC3C,aAAqB,EACrB,WAAmB,EACnB,OAAgB;IAEhB,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC5D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;QAC/B,OAAO;KACR;IAED,OAAO,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"checkModTargetDirectory.js","sourceRoot":"","sources":["../../../../src/commands/init/checkModTargetDirectory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,gDAAwB;AACxB,+CAA+C;AAC/C,iDAAmC;AACnC,yCAA6C;AAC7C,uCAAoC;AAE7B,KAAK,UAAU,uBAAuB,CAC3C,aAAqB,EACrB,WAAmB,EACnB,GAAY,EACZ,OAAgB;IAEhB,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC5D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;QAC/B,OAAO;KACR;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;IAElE,IAAI,GAAG,EAAE;QACP,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,WAAW,QAAQ,KAAK,eAAK,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAClE,OAAO;KACR;IAED,OAAO,CAAC,GAAG,CACT,KAAK,QAAQ,0CAA0C,eAAK,CAAC,KAAK,CAChE,aAAa,CACd,EAAE,CACJ,CAAC;IACF,OAAO,CAAC,GAAG,CACT,GAAG,wBAAY,6DAA6D,CAC7E,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,IAAA,sBAAa,EAAC,8BAA8B,CAAC,CAAC;IAEzE,IAAI,CAAC,YAAY,EAAE;QACjB,IAAA,aAAK,EAAC,mBAAmB,CAAC,CAAC;KAC5B;IAED,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC;AAlCD,0DAkCC"}
|
|
@@ -41,27 +41,17 @@ function createMod(projectName, projectPath, createNewDir, modsDirectory, saveSl
|
|
|
41
41
|
const config = configFile.createObject(modsDirectory, saveSlot);
|
|
42
42
|
configFile.createFile(projectPath, config, verbose);
|
|
43
43
|
const targetModDirectory = path_1.default.join(config.modsDirectory, projectName);
|
|
44
|
-
updateNodeModules(projectPath, verbose);
|
|
45
|
-
installNodeModules(projectPath, skipNPMInstall, verbose);
|
|
46
44
|
makeSubdirectories(projectPath, verbose);
|
|
47
45
|
copyStaticFiles(projectPath, verbose);
|
|
48
46
|
copyDynamicFiles(projectName, projectPath, targetModDirectory, verbose);
|
|
49
|
-
|
|
47
|
+
updateNodeModules(projectPath, verbose);
|
|
48
|
+
installNodeModules(projectPath, skipNPMInstall, verbose);
|
|
49
|
+
formatFiles(projectPath, verbose);
|
|
50
|
+
// Only make the initial commit once all of the files have been copied and formatted
|
|
50
51
|
(0, git_1.initGitRepository)(projectPath, gitRemoteURL, verbose);
|
|
51
52
|
console.log(`Successfully created mod: ${chalk_1.default.green(projectName)}`);
|
|
52
53
|
}
|
|
53
54
|
exports.createMod = createMod;
|
|
54
|
-
function updateNodeModules(projectPath, verbose) {
|
|
55
|
-
console.log("Finding out the latest versions of the NPM packages...");
|
|
56
|
-
(0, exec_1.execShell)("npx", ["npm-check-updates", "--upgrade", "--packageFile", "package.json"], verbose, false, projectPath);
|
|
57
|
-
}
|
|
58
|
-
function installNodeModules(projectPath, skipNPMInstall, verbose) {
|
|
59
|
-
if (skipNPMInstall) {
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
console.log("Installing node modules... (This can take a long time.)");
|
|
63
|
-
(0, exec_1.execShell)("npm", ["install"], verbose, false, projectPath);
|
|
64
|
-
}
|
|
65
55
|
function makeSubdirectories(projectPath, verbose) {
|
|
66
56
|
// The "src" directory is created during copying of static files
|
|
67
57
|
for (const subdirectory of ["mod"]) {
|
|
@@ -126,7 +116,6 @@ function copyDynamicFiles(projectName, projectPath, targetModDirectory, verbose)
|
|
|
126
116
|
const modPath = path_1.default.join(projectPath, "mod");
|
|
127
117
|
const destinationPath = path_1.default.join(modPath, fileName);
|
|
128
118
|
file.write(destinationPath, metadataXML, verbose);
|
|
129
|
-
(0, exec_1.execShell)("npx", ["prettier", "--write", destinationPath]);
|
|
130
119
|
}
|
|
131
120
|
// "mod/metadata.vdf"
|
|
132
121
|
{
|
|
@@ -149,7 +138,21 @@ function copyDynamicFiles(projectName, projectPath, targetModDirectory, verbose)
|
|
|
149
138
|
const mainTS = template.replace(/MOD_NAME_TO_REPLACE/g, projectName);
|
|
150
139
|
const destinationPath = path_1.default.join(srcPath, fileName);
|
|
151
140
|
file.write(destinationPath, mainTS, verbose);
|
|
152
|
-
(0, exec_1.execShell)("npx", ["prettier", "--write", destinationPath]);
|
|
153
141
|
}
|
|
154
142
|
}
|
|
143
|
+
/** The "package.json" file has to be copied first before this step. */
|
|
144
|
+
function updateNodeModules(projectPath, verbose) {
|
|
145
|
+
console.log("Finding out the latest versions of the NPM packages...");
|
|
146
|
+
(0, exec_1.execShell)("npx", ["npm-check-updates", "--upgrade", "--packageFile", "package.json"], verbose, false, projectPath);
|
|
147
|
+
}
|
|
148
|
+
function installNodeModules(projectPath, skipNPMInstall, verbose) {
|
|
149
|
+
if (skipNPMInstall) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
console.log("Installing node modules... (This can take a long time.)");
|
|
153
|
+
(0, exec_1.execShell)("npm", ["install"], verbose, false, projectPath);
|
|
154
|
+
}
|
|
155
|
+
function formatFiles(projectPath, verbose) {
|
|
156
|
+
(0, exec_1.execShell)("npx", ["prettier", "--write", projectPath], verbose, false, projectPath);
|
|
157
|
+
}
|
|
155
158
|
//# sourceMappingURL=createMod.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMod.js","sourceRoot":"","sources":["../../../../src/commands/init/createMod.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,gDAAwB;AACxB,6DAA+C;AAC/C,+CAcyB;AACzB,qCAAuC;AACvC,iDAAmC;AACnC,+BAA0C;AAE1C,SAAgB,SAAS,CACvB,WAAmB,EACnB,WAAmB,EACnB,YAAqB,EACrB,aAAqB,EACrB,QAAgB,EAChB,YAAgC,EAChC,cAAuB,EACvB,OAAgB;IAEhB,IAAI,YAAY,EAAE;QAChB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;KACpC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAChE,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,kBAAkB,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAExE,
|
|
1
|
+
{"version":3,"file":"createMod.js","sourceRoot":"","sources":["../../../../src/commands/init/createMod.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,11 +21,11 @@ const ILLEGAL_CHARACTERS_FOR_WINDOWS_FILENAMES = [
|
|
|
21
21
|
"?",
|
|
22
22
|
"*",
|
|
23
23
|
];
|
|
24
|
-
async function getProjectPath(argv) {
|
|
24
|
+
async function getProjectPath(argv, useCurrentDir, yes) {
|
|
25
25
|
let projectName = getProjectNameFromCommandLineArgument(argv);
|
|
26
26
|
let projectPath;
|
|
27
27
|
let createNewDir;
|
|
28
|
-
if (
|
|
28
|
+
if (useCurrentDir) {
|
|
29
29
|
// The "--use-current-dir" command-line flag was specified,
|
|
30
30
|
// so there is no need to prompt the user
|
|
31
31
|
projectName = constants_1.CURRENT_DIRECTORY_NAME;
|
|
@@ -37,6 +37,13 @@ async function getProjectPath(argv) {
|
|
|
37
37
|
projectPath = path_1.default.join(constants_1.CWD, projectName);
|
|
38
38
|
createNewDir = true;
|
|
39
39
|
}
|
|
40
|
+
else if (yes) {
|
|
41
|
+
// The "--yes" command-line flag was specified and the project name was not specified on the
|
|
42
|
+
// command-line, so default to using the current directory
|
|
43
|
+
projectName = constants_1.CURRENT_DIRECTORY_NAME;
|
|
44
|
+
projectPath = constants_1.CWD;
|
|
45
|
+
createNewDir = false;
|
|
46
|
+
}
|
|
40
47
|
else {
|
|
41
48
|
// The project name was not specified on the command-line, so prompt the user for it
|
|
42
49
|
[projectName, projectPath, createNewDir] = await getNewProjectName();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getProjectPath.js","sourceRoot":"","sources":["../../../../src/commands/init/getProjectPath.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,gDAAwB;AACxB,+CAA8D;AAC9D,yCAA6D;AAC7D,uCAA4C;AAE5C,4EAA4E;AAC5E,MAAM,wCAAwC,GAAG;IAC/C,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,IAAI;IACJ,GAAG;IACH,GAAG;IACH,GAAG;CACJ,CAAC;AAEK,KAAK,UAAU,cAAc,CAClC,IAA6B;
|
|
1
|
+
{"version":3,"file":"getProjectPath.js","sourceRoot":"","sources":["../../../../src/commands/init/getProjectPath.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,7 +38,7 @@ const prompt_1 = require("../../prompt");
|
|
|
38
38
|
const utils_1 = require("../../utils");
|
|
39
39
|
const REQUIRED_GIT_MAJOR_VERSION = 2;
|
|
40
40
|
const REQUIRED_GIT_MINOR_VERSION = 30;
|
|
41
|
-
async function promptGitHubRepoOrGitRemoteURL(projectName, verbose) {
|
|
41
|
+
async function promptGitHubRepoOrGitRemoteURL(projectName, yes, verbose) {
|
|
42
42
|
// We do not need to prompt the user if they do not have Git installed
|
|
43
43
|
if (!command_exists_1.default.sync("git")) {
|
|
44
44
|
console.log('Git does not seem to be installed. (The "git" command is not in the path.) Skipping Git-related things.');
|
|
@@ -53,22 +53,31 @@ async function promptGitHubRepoOrGitRemoteURL(projectName, verbose) {
|
|
|
53
53
|
if (gitHubRepoExists) {
|
|
54
54
|
console.log(`Detected an existing GitHub repository at: ${chalk_1.default.green(url)}`);
|
|
55
55
|
const guessedRemoteURL = getGitRemoteURL(projectName, gitHubUsername);
|
|
56
|
+
if (yes) {
|
|
57
|
+
console.log(`Using a Git remote URL of: ${chalk_1.default.green(guessedRemoteURL)}`);
|
|
58
|
+
return guessedRemoteURL;
|
|
59
|
+
}
|
|
56
60
|
const shouldUseGuessedURL = await (0, prompt_1.getInputYesNo)(`Do you want to use a Git remote URL of: ${chalk_1.default.green(guessedRemoteURL)}`);
|
|
57
61
|
if (shouldUseGuessedURL) {
|
|
58
62
|
return guessedRemoteURL;
|
|
59
63
|
}
|
|
60
64
|
// Assume that since they do not want to connect this project to the existing GitHub
|
|
61
|
-
// repository, they do not want to initialize Git
|
|
65
|
+
// repository, they do not want to initialize a remote Git URL at all
|
|
62
66
|
return undefined;
|
|
63
67
|
}
|
|
68
|
+
if (yes) {
|
|
69
|
+
(0, exec_1.execShell)("gh", ["repo", "create", projectName, "--public"]);
|
|
70
|
+
console.log(`Created a new GitHub repository at: ${url}`);
|
|
71
|
+
return getGitRemoteURL(projectName, gitHubUsername);
|
|
72
|
+
}
|
|
64
73
|
const createNewGitHubRepo = await (0, prompt_1.getInputYesNo)(`Would you like to create a new GitHub repository at: ${chalk_1.default.green(url)}`);
|
|
65
74
|
if (createNewGitHubRepo) {
|
|
66
|
-
(0, exec_1.execShell)("gh", ["repo", "create",
|
|
75
|
+
(0, exec_1.execShell)("gh", ["repo", "create", projectName, "--public"]);
|
|
67
76
|
console.log("Successfully created a new GitHub repository.");
|
|
68
77
|
return getGitRemoteURL(projectName, gitHubUsername);
|
|
69
78
|
}
|
|
70
79
|
// Assume that since they do not want to create a new GitHub repository, they do not want to
|
|
71
|
-
// initialize Git
|
|
80
|
+
// initialize a remote Git URL at all
|
|
72
81
|
return undefined;
|
|
73
82
|
}
|
|
74
83
|
const gitRemoteURL = await (0, prompt_1.getInputString)(`Paste in the remote Git URL for your project.
|
|
@@ -125,18 +134,18 @@ function getGitRemoteURL(projectName, gitHubUsername) {
|
|
|
125
134
|
return `git@github.com:${gitHubUsername}/${projectName}.git`;
|
|
126
135
|
}
|
|
127
136
|
function initGitRepository(projectPath, gitRemoteURL, verbose) {
|
|
128
|
-
|
|
129
|
-
// process
|
|
130
|
-
if (gitRemoteURL === undefined) {
|
|
137
|
+
if (!command_exists_1.default.sync("git")) {
|
|
131
138
|
return;
|
|
132
139
|
}
|
|
133
140
|
(0, exec_1.execShell)("git", ["init"], verbose, false, projectPath);
|
|
134
141
|
(0, exec_1.execShell)("git", ["branch", "-M", "main"], verbose, false, projectPath);
|
|
135
|
-
(0, exec_1.execShell)("git", ["remote", "add", "origin", gitRemoteURL], verbose, false, projectPath);
|
|
136
142
|
if (isGitNameAndEmailConfigured(verbose)) {
|
|
137
143
|
(0, exec_1.execShell)("git", ["add", "--all"], verbose, false, projectPath);
|
|
138
144
|
(0, exec_1.execShell)("git", ["commit", "--message", `${constants_1.PROJECT_NAME} template`], verbose, false, projectPath);
|
|
139
145
|
}
|
|
146
|
+
if (gitRemoteURL !== undefined) {
|
|
147
|
+
(0, exec_1.execShell)("git", ["remote", "add", "origin", gitRemoteURL], verbose, false, projectPath);
|
|
148
|
+
}
|
|
140
149
|
}
|
|
141
150
|
exports.initGitRepository = initGitRepository;
|
|
142
151
|
function isGitNameAndEmailConfigured(verbose) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../../src/commands/init/git.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,oEAA2C;AAC3C,gDAAwB;AACxB,gDAAwB;AACxB,+CAA+C;AAC/C,qCAAuC;AACvC,iDAAmC;AACnC,yCAA6D;AAE7D,uCAAiD;AAEjD,MAAM,0BAA0B,GAAG,CAAC,CAAC;AACrC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAE/B,KAAK,UAAU,8BAA8B,CAClD,WAAmB,EACnB,OAAgB;IAEhB,sEAAsE;IACtE,IAAI,CAAC,wBAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAC9B,OAAO,CAAC,GAAG,CACT,yGAAyG,CAC1G,CAAC;QACF,OAAO,SAAS,CAAC;KAClB;IAED,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/B,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAC3C,IAAI,cAAc,KAAK,SAAS,EAAE;QAChC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAA,gBAAS,EAC5B,IAAI,EACJ,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAC7B,OAAO,EACP,IAAI,CACL,CAAC;QACF,MAAM,gBAAgB,GAAG,UAAU,KAAK,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,sBAAsB,cAAc,IAAI,WAAW,EAAE,CAAC;QAElE,IAAI,gBAAgB,EAAE;YACpB,OAAO,CAAC,GAAG,CACT,8CAA8C,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CACjE,CAAC;YACF,MAAM,gBAAgB,GAAG,eAAe,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../../src/commands/init/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,18 +19,21 @@ const installVSCodeExtensions_1 = require("./installVSCodeExtensions");
|
|
|
19
19
|
const promptSaveSlot_1 = require("./promptSaveSlot");
|
|
20
20
|
const promptVSCode_1 = require("./promptVSCode");
|
|
21
21
|
async function init(argv) {
|
|
22
|
-
const vscode = argv.vscode === true;
|
|
23
22
|
const skipNPMInstall = argv.skipNpmInstall === true;
|
|
23
|
+
const useCurrentDir = argv.useCurrentDir === true;
|
|
24
24
|
const verbose = argv.verbose === true;
|
|
25
|
+
const vscode = argv.vscode === true;
|
|
26
|
+
const yes = argv.yes === true;
|
|
25
27
|
// Prompt the end-user for some information (and validate it as we go)
|
|
26
|
-
const [projectPath, createNewDir] = await (0, getProjectPath_1.getProjectPath)(argv);
|
|
27
|
-
await (0, checkIfProjectPathExists_1.checkIfProjectPathExists)(projectPath, verbose);
|
|
28
|
+
const [projectPath, createNewDir] = await (0, getProjectPath_1.getProjectPath)(argv, useCurrentDir, yes);
|
|
29
|
+
await (0, checkIfProjectPathExists_1.checkIfProjectPathExists)(projectPath, yes, verbose);
|
|
28
30
|
const modsDirectory = await (0, getModsDir_1.getModsDir)(argv);
|
|
29
31
|
(0, checkModSubdirectory_1.checkModSubdirectory)(projectPath, modsDirectory);
|
|
30
32
|
const projectName = path_1.default.basename(projectPath);
|
|
31
|
-
await (0, checkModTargetDirectory_1.checkModTargetDirectory)(modsDirectory, projectName, verbose);
|
|
32
|
-
const saveSlot = await (0, promptSaveSlot_1.promptSaveSlot)(argv);
|
|
33
|
-
const gitRemoteURL = await (0, git_1.promptGitHubRepoOrGitRemoteURL)(projectName, verbose);
|
|
33
|
+
await (0, checkModTargetDirectory_1.checkModTargetDirectory)(modsDirectory, projectName, yes, verbose);
|
|
34
|
+
const saveSlot = await (0, promptSaveSlot_1.promptSaveSlot)(argv, yes);
|
|
35
|
+
const gitRemoteURL = await (0, git_1.promptGitHubRepoOrGitRemoteURL)(projectName, yes, verbose);
|
|
36
|
+
// Now that we have asked the user all of the questions we need, we can create the project
|
|
34
37
|
(0, createMod_1.createMod)(projectName, projectPath, createNewDir, modsDirectory, saveSlot, gitRemoteURL, skipNPMInstall, verbose);
|
|
35
38
|
await openVSCode(projectPath, vscode, verbose);
|
|
36
39
|
printFinishMessage(projectPath, projectName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../src/commands/init/init.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,oEAA2C;AAC3C,gDAAwB;AACxB,+CAAoD;AACpD,yEAAsE;AACtE,iEAA8D;AAC9D,uEAAoE;AACpE,2CAAwC;AACxC,6CAA0C;AAC1C,qDAAkD;AAClD,+BAAuD;AACvD,uEAAoE;AACpE,qDAAkD;AAClD,iDAA8C;AAEvC,KAAK,UAAU,IAAI,CAAC,IAA6B;IACtD,MAAM,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../src/commands/init/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,12 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.promptSaveSlot = void 0;
|
|
4
4
|
const prompt_1 = require("../../prompt");
|
|
5
5
|
const utils_1 = require("../../utils");
|
|
6
|
-
async function promptSaveSlot(argv) {
|
|
6
|
+
async function promptSaveSlot(argv, yes) {
|
|
7
7
|
if (argv.saveSlot !== undefined) {
|
|
8
8
|
// They specified the "--save-slot" command-line flag,
|
|
9
9
|
// so there is no need to prompt the user for it
|
|
10
10
|
return argv.saveSlot;
|
|
11
11
|
}
|
|
12
|
+
if (yes) {
|
|
13
|
+
return 1;
|
|
14
|
+
}
|
|
12
15
|
const saveSlot = await (0, prompt_1.getInputInt)("In-game, will you test your mod on save slot 1, 2, or 3?");
|
|
13
16
|
if (saveSlot !== 1 && saveSlot !== 2 && saveSlot !== 3) {
|
|
14
17
|
(0, utils_1.error)("Error: You must choose a number between 1 and 3.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promptSaveSlot.js","sourceRoot":"","sources":["../../../../src/commands/init/promptSaveSlot.ts"],"names":[],"mappings":";;;AAAA,yCAA2C;AAC3C,uCAAoC;AAE7B,KAAK,UAAU,cAAc,CAClC,IAA6B;
|
|
1
|
+
{"version":3,"file":"promptSaveSlot.js","sourceRoot":"","sources":["../../../../src/commands/init/promptSaveSlot.ts"],"names":[],"mappings":";;;AAAA,yCAA2C;AAC3C,uCAAoC;AAE7B,KAAK,UAAU,cAAc,CAClC,IAA6B,EAC7B,GAAY;IAEZ,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;QAC/B,sDAAsD;QACtD,gDAAgD;QAChD,OAAO,IAAI,CAAC,QAAkB,CAAC;KAChC;IAED,IAAI,GAAG,EAAE;QACP,OAAO,CAAC,CAAC;KACV;IAED,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAW,EAChC,0DAA0D,CAC3D,CAAC;IAEF,IAAI,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,EAAE;QACtD,IAAA,aAAK,EAAC,kDAAkD,CAAC,CAAC;KAC3D;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAvBD,wCAuBC"}
|
package/dist/src/configFile.js
CHANGED
|
@@ -37,13 +37,14 @@ const file = __importStar(require("./file"));
|
|
|
37
37
|
const utils_1 = require("./utils");
|
|
38
38
|
async function get(argv) {
|
|
39
39
|
const verbose = argv.verbose === true;
|
|
40
|
+
const yes = argv.yes === true;
|
|
40
41
|
const existingConfig = readExistingConfig();
|
|
41
42
|
if (existingConfig !== undefined) {
|
|
42
43
|
return existingConfig;
|
|
43
44
|
}
|
|
44
45
|
// No config file exists, so prompt the user for some information and create one
|
|
45
46
|
const modsDirectory = await (0, getModsDir_1.getModsDir)(argv);
|
|
46
|
-
const saveSlot = await (0, promptSaveSlot_1.promptSaveSlot)(argv);
|
|
47
|
+
const saveSlot = await (0, promptSaveSlot_1.promptSaveSlot)(argv, yes);
|
|
47
48
|
const config = createObject(modsDirectory, saveSlot);
|
|
48
49
|
createFile(constants_1.CWD, config, verbose);
|
|
49
50
|
return config;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configFile.js","sourceRoot":"","sources":["../../src/configFile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,oDAAsC;AACtC,gDAAwB;AACxB,2DAAwD;AACxD,mEAAgE;AAChE,2CAAsE;AACtE,6CAA+B;AAE/B,mCAAgC;AAEzB,KAAK,UAAU,GAAG,CAAC,IAA6B;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"configFile.js","sourceRoot":"","sources":["../../src/configFile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,oDAAsC;AACtC,gDAAwB;AACxB,2DAAwD;AACxD,mEAAgE;AAChE,2CAAsE;AACtE,6CAA+B;AAE/B,mCAAgC;AAEzB,KAAK,UAAU,GAAG,CAAC,IAA6B;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;IACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC;IAE9B,MAAM,cAAc,GAAG,kBAAkB,EAAE,CAAC;IAC5C,IAAI,cAAc,KAAK,SAAS,EAAE;QAChC,OAAO,cAAc,CAAC;KACvB;IAED,gFAAgF;IAChF,MAAM,aAAa,GAAG,MAAM,IAAA,uBAAU,EAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,MAAM,IAAA,+BAAc,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACrD,UAAU,CAAC,eAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjC,OAAO,MAAM,CAAC;AAChB,CAAC;AAhBD,kBAgBC;AAED,SAAS,kBAAkB;IACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,4BAAgB,CAAC,EAAE;QAClC,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,4BAAgB,CAAC,CAAC;IAC9C,IAAI,MAAc,CAAC;IACnB,IAAI;QACF,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAW,CAAC;KAC3C;IAAC,OAAO,GAAG,EAAE;QACZ,IAAA,aAAK,EAAC,wBAAwB,eAAK,CAAC,KAAK,CAAC,4BAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;KAC5E;IAED,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE;QACtC,YAAY,CACV,eAAe,EACf,6EAA6E,CAC9E,CAAC;KACH;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;QACjC,YAAY,CACV,UAAU,EACV,mEAAmE,CACpE,CAAC;KACH;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,WAAmB;IACtD,IAAA,aAAK,EACH,QAAQ,4BAAgB,wBAAwB,KAAK,YAAY,WAAW,iBAAiB,CAC9F,CAAC;AACJ,CAAC;AAED,SAAgB,YAAY,CAAC,aAAqB,EAAE,QAAgB;IAClE,OAAO;QACL,aAAa;QACb,QAAQ;KACT,CAAC;AACJ,CAAC;AALD,oCAKC;AAED,SAAgB,UAAU,CACxB,WAAmB,EACnB,MAAc,EACd,OAAgB;IAEhB,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,4BAAgB,CAAC,CAAC;IAChE,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACvD,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC;AARD,gCAQC"}
|
package/dist/src/parseArgs.js
CHANGED
|
@@ -29,6 +29,11 @@ function parseArgs() {
|
|
|
29
29
|
description: "Enable verbose output",
|
|
30
30
|
}))
|
|
31
31
|
.command("init [name]", `Initialize a new ${constants_1.PROJECT_NAME} mod.`, (builder) => builder
|
|
32
|
+
.option("yes", {
|
|
33
|
+
alias: "y",
|
|
34
|
+
type: "boolean",
|
|
35
|
+
description: 'Answer yes to every dialog option, similar to how "npm init --yes" works.',
|
|
36
|
+
})
|
|
32
37
|
.option("use-current-dir", {
|
|
33
38
|
alias: "u",
|
|
34
39
|
type: "boolean",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseArgs.js","sourceRoot":"","sources":["../../src/parseArgs.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"parseArgs.js","sourceRoot":"","sources":["../../src/parseArgs.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -6,22 +6,29 @@ import { error } from "../../utils";
|
|
|
6
6
|
|
|
7
7
|
export async function checkIfProjectPathExists(
|
|
8
8
|
projectPath: string,
|
|
9
|
+
yes: boolean,
|
|
9
10
|
verbose: boolean,
|
|
10
11
|
): Promise<void> {
|
|
11
|
-
if (projectPath
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
`A ${fileType} already exists with a name of "${chalk.green(
|
|
15
|
-
projectPath,
|
|
16
|
-
)}".`,
|
|
17
|
-
);
|
|
18
|
-
|
|
19
|
-
const shouldDelete = await getInputYesNo("Do you want me to delete it?");
|
|
12
|
+
if (projectPath === CWD || !file.exists(projectPath)) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
20
15
|
|
|
21
|
-
|
|
22
|
-
error("Ok then. Good-bye.");
|
|
23
|
-
}
|
|
16
|
+
const fileType = file.isDir(projectPath) ? "directory" : "file";
|
|
24
17
|
|
|
18
|
+
if (yes) {
|
|
25
19
|
file.deleteFileOrDirectory(projectPath, verbose);
|
|
20
|
+
console.log(`Deleted ${fileType}: ${chalk.green(projectPath)}`);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
console.log(
|
|
25
|
+
`A ${fileType} already exists with a name of: ${chalk.green(projectPath)}`,
|
|
26
|
+
);
|
|
27
|
+
const shouldDelete = await getInputYesNo("Do you want me to delete it?");
|
|
28
|
+
|
|
29
|
+
if (!shouldDelete) {
|
|
30
|
+
error("Ok then. Goodbye.");
|
|
26
31
|
}
|
|
32
|
+
|
|
33
|
+
file.deleteFileOrDirectory(projectPath, verbose);
|
|
27
34
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import { CWD } from "../../constants";
|
|
3
3
|
import * as file from "../../file";
|
|
4
|
+
import { error } from "../../utils";
|
|
4
5
|
|
|
5
6
|
export function checkModSubdirectory(
|
|
6
7
|
projectPath: string,
|
|
@@ -12,9 +13,8 @@ export function checkModSubdirectory(
|
|
|
12
13
|
projectPath,
|
|
13
14
|
)}" is a subdirectory of "${chalk.green(modsDirectory)}".`,
|
|
14
15
|
);
|
|
15
|
-
|
|
16
|
+
error(
|
|
16
17
|
'You are supposed to have your project folder somewhere else on the system than the Isaac mods directory. (This is because we don\'t want to upload the ".git" folder or the TypeScript files to the Steam Workshop.) Exiting.',
|
|
17
18
|
);
|
|
18
|
-
process.exit(1);
|
|
19
19
|
}
|
|
20
20
|
}
|
|
@@ -8,6 +8,7 @@ import { error } from "../../utils";
|
|
|
8
8
|
export async function checkModTargetDirectory(
|
|
9
9
|
modsDirectory: string,
|
|
10
10
|
projectName: string,
|
|
11
|
+
yes: boolean,
|
|
11
12
|
verbose: boolean,
|
|
12
13
|
): Promise<void> {
|
|
13
14
|
const modTargetPath = path.join(modsDirectory, projectName);
|
|
@@ -15,21 +16,26 @@ export async function checkModTargetDirectory(
|
|
|
15
16
|
return;
|
|
16
17
|
}
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
const fileType = file.isDir(modTargetPath) ? "directory" : "file";
|
|
20
|
+
|
|
21
|
+
if (yes) {
|
|
22
|
+
file.deleteFileOrDirectory(modTargetPath, verbose);
|
|
23
|
+
console.log(`Deleted ${fileType}: ${chalk.green(modTargetPath)}`);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
console.log(
|
|
28
|
+
`A ${fileType} already exists at at the mod path of: ${chalk.green(
|
|
20
29
|
modTargetPath,
|
|
21
|
-
)}
|
|
22
|
-
);
|
|
23
|
-
console.error(
|
|
24
|
-
`When you run ${PROJECT_NAME}, it will want to create a directory here so that it can sync it with your project folder.`,
|
|
30
|
+
)}`,
|
|
25
31
|
);
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
"Should I delete the existing directory for you? (Make sure that it does not contain anything important first.)",
|
|
32
|
+
console.log(
|
|
33
|
+
`${PROJECT_NAME} will need to sync your project folder with this directory.`,
|
|
29
34
|
);
|
|
35
|
+
const shouldDelete = await getInputYesNo("Do you want me to delete it?");
|
|
30
36
|
|
|
31
|
-
if (!
|
|
32
|
-
error("Ok then.
|
|
37
|
+
if (!shouldDelete) {
|
|
38
|
+
error("Ok then. Goodbye.");
|
|
33
39
|
}
|
|
34
40
|
|
|
35
41
|
file.deleteFileOrDirectory(modTargetPath, verbose);
|
|
@@ -38,42 +38,19 @@ export function createMod(
|
|
|
38
38
|
configFile.createFile(projectPath, config, verbose);
|
|
39
39
|
const targetModDirectory = path.join(config.modsDirectory, projectName);
|
|
40
40
|
|
|
41
|
-
updateNodeModules(projectPath, verbose);
|
|
42
|
-
installNodeModules(projectPath, skipNPMInstall, verbose);
|
|
43
41
|
makeSubdirectories(projectPath, verbose);
|
|
44
42
|
copyStaticFiles(projectPath, verbose);
|
|
45
43
|
copyDynamicFiles(projectName, projectPath, targetModDirectory, verbose);
|
|
44
|
+
updateNodeModules(projectPath, verbose);
|
|
45
|
+
installNodeModules(projectPath, skipNPMInstall, verbose);
|
|
46
|
+
formatFiles(projectPath, verbose);
|
|
46
47
|
|
|
47
|
-
// Only make the initial commit once all of the files have been copied
|
|
48
|
+
// Only make the initial commit once all of the files have been copied and formatted
|
|
48
49
|
initGitRepository(projectPath, gitRemoteURL, verbose);
|
|
49
50
|
|
|
50
51
|
console.log(`Successfully created mod: ${chalk.green(projectName)}`);
|
|
51
52
|
}
|
|
52
53
|
|
|
53
|
-
function updateNodeModules(projectPath: string, verbose: boolean) {
|
|
54
|
-
console.log("Finding out the latest versions of the NPM packages...");
|
|
55
|
-
execShell(
|
|
56
|
-
"npx",
|
|
57
|
-
["npm-check-updates", "--upgrade", "--packageFile", "package.json"],
|
|
58
|
-
verbose,
|
|
59
|
-
false,
|
|
60
|
-
projectPath,
|
|
61
|
-
);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
function installNodeModules(
|
|
65
|
-
projectPath: string,
|
|
66
|
-
skipNPMInstall: boolean,
|
|
67
|
-
verbose: boolean,
|
|
68
|
-
) {
|
|
69
|
-
if (skipNPMInstall) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
console.log("Installing node modules... (This can take a long time.)");
|
|
74
|
-
execShell("npm", ["install"], verbose, false, projectPath);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
54
|
function makeSubdirectories(projectPath: string, verbose: boolean) {
|
|
78
55
|
// The "src" directory is created during copying of static files
|
|
79
56
|
for (const subdirectory of ["mod"]) {
|
|
@@ -150,7 +127,6 @@ function copyDynamicFiles(
|
|
|
150
127
|
const modPath = path.join(projectPath, "mod");
|
|
151
128
|
const destinationPath = path.join(modPath, fileName);
|
|
152
129
|
file.write(destinationPath, metadataXML, verbose);
|
|
153
|
-
execShell("npx", ["prettier", "--write", destinationPath]);
|
|
154
130
|
}
|
|
155
131
|
|
|
156
132
|
// "mod/metadata.vdf"
|
|
@@ -175,6 +151,40 @@ function copyDynamicFiles(
|
|
|
175
151
|
const mainTS = template.replace(/MOD_NAME_TO_REPLACE/g, projectName);
|
|
176
152
|
const destinationPath = path.join(srcPath, fileName);
|
|
177
153
|
file.write(destinationPath, mainTS, verbose);
|
|
178
|
-
execShell("npx", ["prettier", "--write", destinationPath]);
|
|
179
154
|
}
|
|
180
155
|
}
|
|
156
|
+
|
|
157
|
+
/** The "package.json" file has to be copied first before this step. */
|
|
158
|
+
function updateNodeModules(projectPath: string, verbose: boolean) {
|
|
159
|
+
console.log("Finding out the latest versions of the NPM packages...");
|
|
160
|
+
execShell(
|
|
161
|
+
"npx",
|
|
162
|
+
["npm-check-updates", "--upgrade", "--packageFile", "package.json"],
|
|
163
|
+
verbose,
|
|
164
|
+
false,
|
|
165
|
+
projectPath,
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
function installNodeModules(
|
|
170
|
+
projectPath: string,
|
|
171
|
+
skipNPMInstall: boolean,
|
|
172
|
+
verbose: boolean,
|
|
173
|
+
) {
|
|
174
|
+
if (skipNPMInstall) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
console.log("Installing node modules... (This can take a long time.)");
|
|
179
|
+
execShell("npm", ["install"], verbose, false, projectPath);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
function formatFiles(projectPath: string, verbose: boolean) {
|
|
183
|
+
execShell(
|
|
184
|
+
"npx",
|
|
185
|
+
["prettier", "--write", projectPath],
|
|
186
|
+
verbose,
|
|
187
|
+
false,
|
|
188
|
+
projectPath,
|
|
189
|
+
);
|
|
190
|
+
}
|
|
@@ -19,11 +19,13 @@ const ILLEGAL_CHARACTERS_FOR_WINDOWS_FILENAMES = [
|
|
|
19
19
|
|
|
20
20
|
export async function getProjectPath(
|
|
21
21
|
argv: Record<string, unknown>,
|
|
22
|
+
useCurrentDir: boolean,
|
|
23
|
+
yes: boolean,
|
|
22
24
|
): Promise<[string, boolean]> {
|
|
23
25
|
let projectName = getProjectNameFromCommandLineArgument(argv);
|
|
24
26
|
let projectPath: string;
|
|
25
27
|
let createNewDir: boolean;
|
|
26
|
-
if (
|
|
28
|
+
if (useCurrentDir) {
|
|
27
29
|
// The "--use-current-dir" command-line flag was specified,
|
|
28
30
|
// so there is no need to prompt the user
|
|
29
31
|
projectName = CURRENT_DIRECTORY_NAME;
|
|
@@ -33,6 +35,12 @@ export async function getProjectPath(
|
|
|
33
35
|
// The project name was specified on the command-line
|
|
34
36
|
projectPath = path.join(CWD, projectName);
|
|
35
37
|
createNewDir = true;
|
|
38
|
+
} else if (yes) {
|
|
39
|
+
// The "--yes" command-line flag was specified and the project name was not specified on the
|
|
40
|
+
// command-line, so default to using the current directory
|
|
41
|
+
projectName = CURRENT_DIRECTORY_NAME;
|
|
42
|
+
projectPath = CWD;
|
|
43
|
+
createNewDir = false;
|
|
36
44
|
} else {
|
|
37
45
|
// The project name was not specified on the command-line, so prompt the user for it
|
|
38
46
|
[projectName, projectPath, createNewDir] = await getNewProjectName();
|
package/src/commands/init/git.ts
CHANGED
|
@@ -14,6 +14,7 @@ const REQUIRED_GIT_MINOR_VERSION = 30;
|
|
|
14
14
|
|
|
15
15
|
export async function promptGitHubRepoOrGitRemoteURL(
|
|
16
16
|
projectName: string,
|
|
17
|
+
yes: boolean,
|
|
17
18
|
verbose: boolean,
|
|
18
19
|
): Promise<string | undefined> {
|
|
19
20
|
// We do not need to prompt the user if they do not have Git installed
|
|
@@ -42,6 +43,14 @@ export async function promptGitHubRepoOrGitRemoteURL(
|
|
|
42
43
|
`Detected an existing GitHub repository at: ${chalk.green(url)}`,
|
|
43
44
|
);
|
|
44
45
|
const guessedRemoteURL = getGitRemoteURL(projectName, gitHubUsername);
|
|
46
|
+
|
|
47
|
+
if (yes) {
|
|
48
|
+
console.log(
|
|
49
|
+
`Using a Git remote URL of: ${chalk.green(guessedRemoteURL)}`,
|
|
50
|
+
);
|
|
51
|
+
return guessedRemoteURL;
|
|
52
|
+
}
|
|
53
|
+
|
|
45
54
|
const shouldUseGuessedURL = await getInputYesNo(
|
|
46
55
|
`Do you want to use a Git remote URL of: ${chalk.green(
|
|
47
56
|
guessedRemoteURL,
|
|
@@ -52,23 +61,29 @@ export async function promptGitHubRepoOrGitRemoteURL(
|
|
|
52
61
|
}
|
|
53
62
|
|
|
54
63
|
// Assume that since they do not want to connect this project to the existing GitHub
|
|
55
|
-
// repository, they do not want to initialize Git
|
|
64
|
+
// repository, they do not want to initialize a remote Git URL at all
|
|
56
65
|
return undefined;
|
|
57
66
|
}
|
|
58
67
|
|
|
68
|
+
if (yes) {
|
|
69
|
+
execShell("gh", ["repo", "create", projectName, "--public"]);
|
|
70
|
+
console.log(`Created a new GitHub repository at: ${url}`);
|
|
71
|
+
return getGitRemoteURL(projectName, gitHubUsername);
|
|
72
|
+
}
|
|
73
|
+
|
|
59
74
|
const createNewGitHubRepo = await getInputYesNo(
|
|
60
75
|
`Would you like to create a new GitHub repository at: ${chalk.green(
|
|
61
76
|
url,
|
|
62
77
|
)}`,
|
|
63
78
|
);
|
|
64
79
|
if (createNewGitHubRepo) {
|
|
65
|
-
execShell("gh", ["repo", "create",
|
|
80
|
+
execShell("gh", ["repo", "create", projectName, "--public"]);
|
|
66
81
|
console.log("Successfully created a new GitHub repository.");
|
|
67
82
|
return getGitRemoteURL(projectName, gitHubUsername);
|
|
68
83
|
}
|
|
69
84
|
|
|
70
85
|
// Assume that since they do not want to create a new GitHub repository, they do not want to
|
|
71
|
-
// initialize Git
|
|
86
|
+
// initialize a remote Git URL at all
|
|
72
87
|
return undefined;
|
|
73
88
|
}
|
|
74
89
|
|
|
@@ -160,21 +175,12 @@ export function initGitRepository(
|
|
|
160
175
|
gitRemoteURL: string | undefined,
|
|
161
176
|
verbose: boolean,
|
|
162
177
|
): void {
|
|
163
|
-
|
|
164
|
-
// process
|
|
165
|
-
if (gitRemoteURL === undefined) {
|
|
178
|
+
if (!commandExists.sync("git")) {
|
|
166
179
|
return;
|
|
167
180
|
}
|
|
168
181
|
|
|
169
182
|
execShell("git", ["init"], verbose, false, projectPath);
|
|
170
183
|
execShell("git", ["branch", "-M", "main"], verbose, false, projectPath);
|
|
171
|
-
execShell(
|
|
172
|
-
"git",
|
|
173
|
-
["remote", "add", "origin", gitRemoteURL],
|
|
174
|
-
verbose,
|
|
175
|
-
false,
|
|
176
|
-
projectPath,
|
|
177
|
-
);
|
|
178
184
|
|
|
179
185
|
if (isGitNameAndEmailConfigured(verbose)) {
|
|
180
186
|
execShell("git", ["add", "--all"], verbose, false, projectPath);
|
|
@@ -186,6 +192,16 @@ export function initGitRepository(
|
|
|
186
192
|
projectPath,
|
|
187
193
|
);
|
|
188
194
|
}
|
|
195
|
+
|
|
196
|
+
if (gitRemoteURL !== undefined) {
|
|
197
|
+
execShell(
|
|
198
|
+
"git",
|
|
199
|
+
["remote", "add", "origin", gitRemoteURL],
|
|
200
|
+
verbose,
|
|
201
|
+
false,
|
|
202
|
+
projectPath,
|
|
203
|
+
);
|
|
204
|
+
}
|
|
189
205
|
}
|
|
190
206
|
|
|
191
207
|
function isGitNameAndEmailConfigured(verbose: boolean) {
|
|
@@ -14,23 +14,31 @@ import { promptSaveSlot } from "./promptSaveSlot";
|
|
|
14
14
|
import { promptVSCode } from "./promptVSCode";
|
|
15
15
|
|
|
16
16
|
export async function init(argv: Record<string, unknown>): Promise<void> {
|
|
17
|
-
const vscode = argv.vscode === true;
|
|
18
17
|
const skipNPMInstall = argv.skipNpmInstall === true;
|
|
18
|
+
const useCurrentDir = argv.useCurrentDir === true;
|
|
19
19
|
const verbose = argv.verbose === true;
|
|
20
|
+
const vscode = argv.vscode === true;
|
|
21
|
+
const yes = argv.yes === true;
|
|
20
22
|
|
|
21
23
|
// Prompt the end-user for some information (and validate it as we go)
|
|
22
|
-
const [projectPath, createNewDir] = await getProjectPath(
|
|
23
|
-
|
|
24
|
+
const [projectPath, createNewDir] = await getProjectPath(
|
|
25
|
+
argv,
|
|
26
|
+
useCurrentDir,
|
|
27
|
+
yes,
|
|
28
|
+
);
|
|
29
|
+
await checkIfProjectPathExists(projectPath, yes, verbose);
|
|
24
30
|
const modsDirectory = await getModsDir(argv);
|
|
25
31
|
checkModSubdirectory(projectPath, modsDirectory);
|
|
26
32
|
const projectName = path.basename(projectPath);
|
|
27
|
-
await checkModTargetDirectory(modsDirectory, projectName, verbose);
|
|
28
|
-
const saveSlot = await promptSaveSlot(argv);
|
|
33
|
+
await checkModTargetDirectory(modsDirectory, projectName, yes, verbose);
|
|
34
|
+
const saveSlot = await promptSaveSlot(argv, yes);
|
|
29
35
|
const gitRemoteURL = await promptGitHubRepoOrGitRemoteURL(
|
|
30
36
|
projectName,
|
|
37
|
+
yes,
|
|
31
38
|
verbose,
|
|
32
39
|
);
|
|
33
40
|
|
|
41
|
+
// Now that we have asked the user all of the questions we need, we can create the project
|
|
34
42
|
createMod(
|
|
35
43
|
projectName,
|
|
36
44
|
projectPath,
|
|
@@ -3,6 +3,7 @@ import { error } from "../../utils";
|
|
|
3
3
|
|
|
4
4
|
export async function promptSaveSlot(
|
|
5
5
|
argv: Record<string, unknown>,
|
|
6
|
+
yes: boolean,
|
|
6
7
|
): Promise<number> {
|
|
7
8
|
if (argv.saveSlot !== undefined) {
|
|
8
9
|
// They specified the "--save-slot" command-line flag,
|
|
@@ -10,6 +11,10 @@ export async function promptSaveSlot(
|
|
|
10
11
|
return argv.saveSlot as number;
|
|
11
12
|
}
|
|
12
13
|
|
|
14
|
+
if (yes) {
|
|
15
|
+
return 1;
|
|
16
|
+
}
|
|
17
|
+
|
|
13
18
|
const saveSlot = await getInputInt(
|
|
14
19
|
"In-game, will you test your mod on save slot 1, 2, or 3?",
|
|
15
20
|
);
|
package/src/configFile.ts
CHANGED
|
@@ -10,6 +10,7 @@ import { error } from "./utils";
|
|
|
10
10
|
|
|
11
11
|
export async function get(argv: Record<string, unknown>): Promise<Config> {
|
|
12
12
|
const verbose = argv.verbose === true;
|
|
13
|
+
const yes = argv.yes === true;
|
|
13
14
|
|
|
14
15
|
const existingConfig = readExistingConfig();
|
|
15
16
|
if (existingConfig !== undefined) {
|
|
@@ -18,7 +19,7 @@ export async function get(argv: Record<string, unknown>): Promise<Config> {
|
|
|
18
19
|
|
|
19
20
|
// No config file exists, so prompt the user for some information and create one
|
|
20
21
|
const modsDirectory = await getModsDir(argv);
|
|
21
|
-
const saveSlot = await promptSaveSlot(argv);
|
|
22
|
+
const saveSlot = await promptSaveSlot(argv, yes);
|
|
22
23
|
const config = createObject(modsDirectory, saveSlot);
|
|
23
24
|
createFile(CWD, config, verbose);
|
|
24
25
|
|
package/src/parseArgs.ts
CHANGED
|
@@ -32,6 +32,12 @@ export function parseArgs(): Record<string, unknown> {
|
|
|
32
32
|
`Initialize a new ${PROJECT_NAME} mod.`,
|
|
33
33
|
(builder) =>
|
|
34
34
|
builder
|
|
35
|
+
.option("yes", {
|
|
36
|
+
alias: "y",
|
|
37
|
+
type: "boolean",
|
|
38
|
+
description:
|
|
39
|
+
'Answer yes to every dialog option, similar to how "npm init --yes" works.',
|
|
40
|
+
})
|
|
35
41
|
.option("use-current-dir", {
|
|
36
42
|
alias: "u",
|
|
37
43
|
type: "boolean",
|