@makano/rew 1.2.31 → 1.2.32

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.
@@ -214,11 +214,19 @@ yargs(hideBin(process.argv))
214
214
  alias: 'r',
215
215
  describe: 'Install requirements of the app',
216
216
  type: 'boolean',
217
+ }).option('update', {
218
+ alias: 'u',
219
+ describe: 'Update the app',
220
+ type: 'boolean',
221
+ }).option('yes', {
222
+ alias: 'y',
223
+ describe: 'Auto yes',
224
+ type: 'boolean',
217
225
  });
218
226
  },
219
227
  async (argv) => {
220
- if(argv.requirements) utils.installReq(argv.path);
221
- else utils.installAppFrom(argv.path);
228
+ if(argv.requirements) utils.installReq(argv.path, argv);
229
+ else utils.installAppFrom(argv.path, argv);
222
230
  },
223
231
  )
224
232
  .command(
@@ -16,6 +16,7 @@ const { watch } = require('chokidar');
16
16
  const { execRewFile } = require('./run');
17
17
 
18
18
  const binpath = path.join(conf({}).create('').root, '.bin');
19
+ const logspath = path.join(conf({}).create('').root, '.logs');
19
20
  const localBinPath = path.join(binpath, '../../../', 'bin');
20
21
 
21
22
  module.exports = {
@@ -176,7 +177,7 @@ module.exports = {
176
177
  }
177
178
  }
178
179
  },
179
- installApp(pathname, rmidir, rmidiri) {
180
+ installApp(pathname, opts, rmidir, rmidiri) {
180
181
  if (!pathname) {
181
182
  return;
182
183
  }
@@ -197,8 +198,8 @@ module.exports = {
197
198
  if (p.descriptiondescription) {
198
199
  log(' Description'.blue + ': ' + p.description);
199
200
  }
200
- rl.question(logget('Install '.blue + pname.green.bold + '? (y/N) '), (f) => {
201
- if (f.toLowerCase() == 'y') {
201
+ const done = (f) => {
202
+ if (f.toLowerCase() == 'y' || f.toLowerCase() == 'yes') {
202
203
  if (fs.existsSync(installPath)) {
203
204
  execSync(`rm -r ${installPath}`);
204
205
  }
@@ -218,7 +219,13 @@ module.exports = {
218
219
  }
219
220
  if (c.install.commands) {
220
221
  for (let command of c.install.commands) {
221
- execSync(command.replace(/\$installPath/g, installPath));
222
+ try{
223
+ execSync(command.replace(/\$installPath/g, installPath), { stdio: 'inherit' });
224
+ } catch(e){
225
+ const logFile = path.join(logspath, 'logs-'+Date.now()+'.log');
226
+ fs.writeFileSync(logFile, e.toString() +'\n'+ e.stack);
227
+ log(` Command Failed: ${command}, check logs at ${logFile}`, ':end');
228
+ }
222
229
  }
223
230
  }
224
231
  if (c.install.file) {
@@ -250,12 +257,19 @@ module.exports = {
250
257
  log(' Canceled install'.red.bold, ':end');
251
258
  rl.close();
252
259
  }
253
- });
260
+ };
261
+ if (fs.existsSync(installPath) && !opts.update) {
262
+ rl.close();
263
+ log(` App Already Installed`.green.bold);
264
+ return log(` Run With --update or -u to update.`.green.bold, ':end');
265
+ }
266
+ if(opts.yes) done('y');
267
+ else rl.question(logget('Install '.blue + pname.green.bold + '? (y/N) '), done);
254
268
  } else {
255
269
  log(' Path is not a rew app'.red.bold, ':end');
256
270
  }
257
271
  },
258
- installReq(config) {
272
+ installReq(config, opts) {
259
273
  if (typeof config !== "object") {
260
274
  const confPath = path.join(config, './app.yaml');
261
275
  if (!fs.existsSync(confPath)) return log(' Path is not a rew app'.red.bold, ':end');
@@ -265,7 +279,7 @@ module.exports = {
265
279
  if (!Array.isArray(config.install.requirements)) return log(' Requirements must be an array'.red.bold, ':end');
266
280
  config.install.requirements.forEach(req => {
267
281
  log('Finding '.cyan + req.green);
268
- this.installAppFrom(req);
282
+ this.installAppFrom(req, opts);
269
283
  });
270
284
  }
271
285
  },
@@ -362,10 +376,10 @@ module.exports = {
362
376
  const repos = conf({}).create('').optionCenter('repos');
363
377
  return repos.get(repo);
364
378
  },
365
- async installAppFrom(path) {
366
- if (path.startsWith('github:')) this.installApp(await this.cloneGit(path), true, true);
367
- else if (path.startsWith('@')) this.fromRepo(path);
368
- else this.installApp(path);
379
+ async installAppFrom(path, opts) {
380
+ if (path.startsWith('github:')) this.installApp(await this.cloneGit(path), opts, true, true);
381
+ else if (path.startsWith('@')) this.fromRepo(path, opts);
382
+ else this.installApp(path, opts, null, null);
369
383
  },
370
384
  uninstall(packageName, all) {
371
385
  const confPath = path.join(CONFIG_PATH, packageName);
@@ -409,7 +423,7 @@ module.exports = {
409
423
  return {};
410
424
  }
411
425
  },
412
- async fromRepo(repoAndPkg) {
426
+ async fromRepo(repoAndPkg, opts) {
413
427
  const [repo, pkg] = repoAndPkg.slice(1).split('/');
414
428
  const repoUrl = this.findRepo(repo);
415
429
  if (!repoUrl) {
@@ -418,7 +432,7 @@ module.exports = {
418
432
  } else {
419
433
  const repoJson = await this.getRepoJson(repoUrl);
420
434
  if (repoJson?.packages?.[pkg]) {
421
- await this.installAppFrom(repoJson.packages[pkg]);
435
+ await this.installAppFrom(repoJson.packages[pkg], opts);
422
436
  } else {
423
437
  log(` Package "${pkg.cyan}" is not in repo "${repo.green}"`.red.bold, ":end");
424
438
  }
@@ -457,5 +471,6 @@ module.exports = {
457
471
  log('First time init')
458
472
  conf({}).create('').optionCenter('repos').set('rewpkgs', '//raw.githubusercontent.com/kevinJ045/rewpkgs/main/main.yaml');
459
473
  fs.mkdirSync(binpath, { recursive: true });
474
+ fs.mkdirSync(logspath, { recursive: true });
460
475
  }
461
476
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@makano/rew",
3
- "version": "1.2.31",
3
+ "version": "1.2.32",
4
4
  "description": "A simple coffescript runtime and app manager",
5
5
  "main": "main.js",
6
6
  "directories": {