js-common-code/src/script/sampleScript.js
2025-03-20 21:56:10 +09:00

89 lines
2.1 KiB
JavaScript

#!/usr/bin/env node
/**
* シンプルなコマンドラインスクリプト
*
* このスクリプトは、引数を受け取り、その内容を表示します。
* `--help` オプションを指定すると、使い方を表示します。
*
* @module script
*/
/**
* スクリプトのエントリーポイント
*
* @function main
* @param {string[]} args - コマンドライン引数 (process.argv を除いたもの)
* @returns {void}
*
* @example
* // メッセージを表示する
* node src/script/sampleScript.js Hello
*
* @example
* // ヘルプを表示する
* node src/script/sampleScript.js --help
*/
const main = (args) => {
if (args.includes('--help')) {
displayHelp();
return;
}
// 引数がない場合のデフォルトメッセージ
if (args.length === 0) {
handleError('エラー: 引数が必要です。\n`node script.js --help` で使い方を確認してください。');
return;
}
processArguments(args);
}
/**
* ヘルプメッセージを表示する
*
* @function displayHelp
* @returns {void}
*/
const displayHelp = () => {
console.log(`
Usage: node script.js [message]
Options:
--help ヘルプを表示
`);
};
/**
* エラーメッセージを表示し、終了する
*
* @function handleError
* @param {string} message - エラーメッセージ
* @returns {void}
*
* @example
* handleError("エラー: 引数が必要です。");
*/
const handleError = (message) => {
console.error(message);
process.exit(1);
}
/**
* 引数を処理してメッセージを表示する
*
* @function processArguments
* @param {string[]} args - コマンドライン引数
* @returns {void}
*
* @example
* processArguments(["Hello", "World"]);
* // 出力: "Hello World"
*/
function processArguments(args) {
const message = args.join(' ');
console.log(`入力されたメッセージ: ${message}`);
}
// コマンドライン引数を取得して main 関数を実行
main(process.argv.slice(2));