Skip to content

Commit

Permalink
fix: arg detection
Browse files Browse the repository at this point in the history
  • Loading branch information
Qu4k committed May 24, 2020
1 parent 4402896 commit eb033b7
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 31 deletions.
64 changes: 37 additions & 27 deletions src/args.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,32 +26,42 @@ export function parseArgs(args: string[] = Deno.args): Args {
args = args.slice(1);
}

const flags = parseFlags(args, {
string: [
"config",
],
boolean: [
"help",
"version",
"init",
"upgrade",
],
alias: {
help: "h",
version: "v",
init: "i",
config: "c",
},
});

return {
help: flags.help ?? false,
version: flags.version ?? false,
init: flags.init ?? false,
upgrade: flags.upgrade ?? false,

config: flags.config,

cmd: flags._.map((_: any) => _.toString()),
const flags: Args = {
help: false,
version: false,
init: false,
upgrade: false,
cmd: [],
};

if (
(args.indexOf("--config") === 0 || args.indexOf("-c") === 0) &&
args.length > 1
) {
flags.config = args[1];
args = args.slice(2);
}

if (args.indexOf("--help") === 0 || args.indexOf("-h") === 0) {
flags.help = true;
args = args.slice(1);
}

if (args.indexOf("--version") === 0 || args.indexOf("-v") === 0) {
flags.version = true;
args = args.slice(1);
}

if (args.indexOf("--init") === 0 || args.indexOf("-i") === 0) {
flags.init = true;
args = args.slice(1);
}

if (args.indexOf("--upgrade") === 0 || args.indexOf("-u") === 0) {
flags.upgrade = true;
args = args.slice(1);
}

flags.cmd = args;
return flags;
}
9 changes: 5 additions & 4 deletions src/runner.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { log } from "../deps.ts";
import { Scripts, ScriptOptions, buildFlags } from "./scripts.ts";

import { merge } from "./merge.ts";
import { DenonConfig } from "./config.ts";

/**
* `Runner` configuration.
Expand All @@ -29,9 +30,9 @@ const reCliCompact = new RegExp(/^(run|test|fmt) *(.*)$/);
* object to make available process events.
*/
export class Runner {
#config: RunnerConfig;
#config: DenonConfig;

constructor(config: RunnerConfig) {
constructor(config: DenonConfig) {
this.#config = config;
}

Expand All @@ -47,8 +48,8 @@ export class Runner {

const s = this.#config.scripts[script];

if (!s) {
const cmd = Deno.args.join(" ");
if (!s && this.#config.args) {
const cmd = this.#config.args.cmd.join(" ");
let out: string[] = [];
if (reCompact.test(cmd)) {
out = ["deno", "run"];
Expand Down

0 comments on commit eb033b7

Please sign in to comment.