UNPKG

@shutootaki/gwm

Version:
68 lines 2.97 kB
#!/usr/bin/env node import { jsx as _jsx } from "react/jsx-runtime"; import { ConfigTest } from './components/ConfigTest.js'; import { render } from 'ink'; import { SelectTest } from './components/SelectTest.js'; import { Welcome } from './components/Welcome.js'; import { Help } from './components/Help.js'; import { WorktreeAdd } from './components/WorktreeAdd.js'; import { WorktreeClean } from './components/WorktreeClean.js'; import { WorktreeGo } from './components/WorktreeGo.js'; import { WorktreeList } from './components/WorktreeList.js'; import { WorktreeRemove } from './components/WorktreeRemove.js'; import { WorktreePullMain } from './components/WorktreePullMain.js'; import { parseAddArgs, parseRemoveArgs, parseCleanArgs, parseGoArgs, parsePullMainArgs, parseHelpArgs, isHelpRequested, } from './utils/index.js'; const App = () => { const args = process.argv.slice(2); const command = args[0]; // ヘルプオプションのチェック if (isHelpRequested(args, command)) { if (command === 'help') { // `gwm help [command]` の場合 const { command: helpCommand } = parseHelpArgs(args); return _jsx(Help, { command: helpCommand }); } else { // `gwm <command> --help` の場合 return _jsx(Help, { command: command }); } } switch (command) { case 'list': case 'ls': return _jsx(WorktreeList, {}); case 'add': { const { branchName, isRemote, fromBranch, openCode, openCursor, outputPath, skipHooks, } = parseAddArgs(args); return (_jsx(WorktreeAdd, { branchName: branchName, isRemote: isRemote, fromBranch: fromBranch, openCode: openCode, openCursor: openCursor, outputPath: outputPath, skipHooks: skipHooks })); } case 'remove': case 'rm': { const { query, force, cleanBranch } = parseRemoveArgs(args); return (_jsx(WorktreeRemove, { query: query, force: force, cleanBranch: cleanBranch })); } case 'go': { const { query, openCode, openCursor } = parseGoArgs(args); return (_jsx(WorktreeGo, { query: query, openCode: openCode, openCursor: openCursor })); } case 'clean': { const { dryRun, force } = parseCleanArgs(args); return _jsx(WorktreeClean, { dryRun: dryRun, force: force }); } case 'pull-main': { parsePullMainArgs(args); // 将来の拡張用 return _jsx(WorktreePullMain, {}); } case 'help': { const { command: helpCommand } = parseHelpArgs(args); return _jsx(Help, { command: helpCommand }); } case 'config': return _jsx(ConfigTest, {}); case 'select-test': return _jsx(SelectTest, {}); default: return _jsx(Welcome, {}); } }; render(_jsx(App, {})); //# sourceMappingURL=index.js.map