UNPKG

kawazu

Version:

kawazu CLI tool for real-time chat in your editor

117 lines (116 loc) 5.99 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.configureSettings = configureSettings; exports.showConfig = showConfig; const chalk_1 = __importDefault(require("chalk")); const inquirer_1 = __importDefault(require("inquirer")); const config_1 = require("../utils/config"); async function configureSettings(options) { try { console.log(chalk_1.default.blue('⚙️ Kawazu CLI 設定\n')); // 現在の設定を読み込み const currentConfig = await (0, config_1.loadConfig)(); // オプションが指定されている場合は直接設定 if (options.server || options.username) { const newConfig = { ...currentConfig }; if (options.server) { newConfig.server_url = options.server; console.log(chalk_1.default.green(`✅ サーバーURL を設定しました: ${options.server}`)); } if (options.username) { newConfig.default_username = options.username; console.log(chalk_1.default.green(`✅ デフォルトユーザー名を設定しました: ${options.username}`)); } await (0, config_1.saveConfig)(newConfig); return; } // インタラクティブ設定モード console.log(chalk_1.default.gray('現在の設定:')); console.log(` サーバーURL: ${chalk_1.default.cyan(currentConfig.server_url)}`); console.log(` デフォルトユーザー名: ${chalk_1.default.cyan(currentConfig.default_username || '未設定')}`); console.log(` エディタ自動オープン: ${chalk_1.default.cyan(currentConfig.auto_open_editor ? 'ON' : 'OFF')}`); console.log(` エディタコマンド: ${chalk_1.default.cyan(currentConfig.editor_command || 'code')}\n`); const answers = await inquirer_1.default.prompt([ { type: 'input', name: 'server_url', message: 'サーバーURL:', default: currentConfig.server_url, validate: (input) => { try { new URL(input); return true; } catch { return '有効なURLを入力してください'; } } }, { type: 'input', name: 'default_username', message: 'デフォルトユーザー名 (任意):', default: currentConfig.default_username || '', validate: (input) => { if (!input.trim()) return true; // 空の場合はOK if (input.length > 50) return 'ユーザー名は50文字以内で入力してください'; if (!/^[a-zA-Z0-9_-]+$/.test(input)) return 'ユーザー名は英数字、ハイフン、アンダースコアのみ使用できます'; return true; } }, { type: 'confirm', name: 'auto_open_editor', message: 'ルーム参加時に自動でエディタを開きますか?', default: currentConfig.auto_open_editor || false }, { type: 'input', name: 'editor_command', message: 'エディタコマンド:', default: currentConfig.editor_command || 'code', when: (answers) => answers.auto_open_editor } ]); // 空文字の場合は undefined にする const newConfig = { server_url: answers.server_url, default_username: answers.default_username || undefined, auto_open_editor: answers.auto_open_editor, editor_command: answers.editor_command || 'code' }; await (0, config_1.saveConfig)(newConfig); console.log(chalk_1.default.green('\n✅ 設定を保存しました!')); // 設定確認 console.log(chalk_1.default.blue('\n📋 更新された設定:')); console.log(` サーバーURL: ${chalk_1.default.cyan(newConfig.server_url)}`); console.log(` デフォルトユーザー名: ${chalk_1.default.cyan(newConfig.default_username || '未設定')}`); console.log(` エディタ自動オープン: ${chalk_1.default.cyan(newConfig.auto_open_editor ? 'ON' : 'OFF')}`); if (newConfig.auto_open_editor) { console.log(` エディタコマンド: ${chalk_1.default.cyan(newConfig.editor_command)}`); } } catch (error) { console.error(chalk_1.default.red(`❌ 設定でエラーが発生しました: ${error.message}`)); } } async function showConfig() { try { const config = await (0, config_1.loadConfig)(); console.log(chalk_1.default.blue('⚙️ 現在の設定:\n')); console.log(`${chalk_1.default.bold('サーバーURL:')} ${chalk_1.default.cyan(config.server_url)}`); console.log(`${chalk_1.default.bold('デフォルトユーザー名:')} ${chalk_1.default.cyan(config.default_username || '未設定')}`); console.log(`${chalk_1.default.bold('エディタ自動オープン:')} ${chalk_1.default.cyan(config.auto_open_editor ? 'ON' : 'OFF')}`); console.log(`${chalk_1.default.bold('エディタコマンド:')} ${chalk_1.default.cyan(config.editor_command || 'code')}`); console.log(chalk_1.default.gray('\n設定を変更するには: kawazu config')); } catch (error) { console.error(chalk_1.default.red(`❌ 設定の読み込みでエラーが発生しました: ${error.message}`)); } }