1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var path = require("path");
|
4 | var cmn = require("@akashic/akashic-cli-commons");
|
5 | function _completeModifyBasicParameterParameterObject(param) {
|
6 | param.cwd = param.cwd || process.cwd();
|
7 | param.logger = param.logger || new cmn.ConsoleLogger();
|
8 | }
|
9 | exports._completeModifyBasicParameterParameterObject = _completeModifyBasicParameterParameterObject;
|
10 | function promiseModifyBasicParameter(param) {
|
11 | _completeModifyBasicParameterParameterObject(param);
|
12 | if (typeof param.value !== "number" || isNaN(param.value) || param.value <= 0 || Math.round(param.value) !== param.value) {
|
13 | return Promise.reject(new Error(param.target + " must be a positive integer but '" + param.value + "' is given."));
|
14 | }
|
15 | var restoreDirectory = cmn.Util.chdir(param.cwd);
|
16 | var gameJsonPath = path.join(process.cwd(), "game.json");
|
17 | return Promise.resolve()
|
18 | .then(function () { return cmn.ConfigurationFile.read(gameJsonPath, param.logger); })
|
19 | .then(function (content) {
|
20 | return new Promise(function (resolve, reject) {
|
21 | switch (param.target) {
|
22 | case "width":
|
23 | content.width = param.value;
|
24 | break;
|
25 | case "height":
|
26 | content.height = param.value;
|
27 | break;
|
28 | case "fps":
|
29 | content.fps = param.value;
|
30 | break;
|
31 | default:
|
32 | return reject("unknown target: " + param.target);
|
33 | }
|
34 | resolve();
|
35 | })
|
36 | .then(function () { return cmn.ConfigurationFile.write(content, gameJsonPath, param.logger); })
|
37 | .then(function () { return param.logger.info("Done!"); });
|
38 | })
|
39 | .then(restoreDirectory)
|
40 | .catch(function (err) {
|
41 | restoreDirectory();
|
42 | throw new Error(err);
|
43 | });
|
44 | }
|
45 | exports.promiseModifyBasicParameter = promiseModifyBasicParameter;
|
46 | function modifyBasicParameter(param, cb) {
|
47 | promiseModifyBasicParameter(param).then(cb, cb);
|
48 | }
|
49 | exports.modifyBasicParameter = modifyBasicParameter;
|