@shutootaki/gwm
Version:
git worktree manager CLI
68 lines • 2.97 kB
JavaScript
#!/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