保留 entrypoint.sh 作為容器進入點,改為啟動 app/ 下的 Node.js 程式; 依功能拆分為 logger/config/version/releases/output/index,並更新 Dockerfile 改用 node:lts-alpine。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
46 lines
1.4 KiB
JavaScript
46 lines
1.4 KiB
JavaScript
'use strict';
|
|
|
|
// 主分隔線與次分隔線寬度(沿用原 entrypoint.sh 的視覺樣式)
|
|
const LINE = '='.repeat(50);
|
|
const SUBLINE = '-'.repeat(50);
|
|
|
|
/**
|
|
* 輸出帶標題的區塊段落至標準輸出,標題前後以分隔線包夾,
|
|
* 用於在 log 中建立可視的段落區隔。
|
|
*
|
|
* 輸出格式為:換行 + 主分隔線(50 個 `=`)+ 標題 + 次分隔線(50 個 `-`)。
|
|
*
|
|
* @param {string} title - 區塊標題文字;會原樣輸出於兩條分隔線之間。
|
|
* @returns {void}
|
|
*/
|
|
function section(title) {
|
|
process.stdout.write(`\n${LINE}\n${title}\n${SUBLINE}\n`);
|
|
}
|
|
|
|
/**
|
|
* 輸出一般資訊層級的 log 訊息至標準輸出,自動加上 `[info]` 前綴與換行。
|
|
*
|
|
* @param {string} message - 要輸出的資訊內容。
|
|
* @returns {void}
|
|
*/
|
|
function info(message) {
|
|
process.stdout.write(`[info] ${message}\n`);
|
|
}
|
|
|
|
/**
|
|
* 輸出錯誤層級的 log 訊息至標準錯誤輸出(stderr),並以狀態碼 1
|
|
* 立即終止整個行程。用於發生無法復原的錯誤時中止執行。
|
|
*
|
|
* 注意:此函式呼叫 `process.exit(1)`,正常情況下不會回傳給呼叫端,
|
|
* 其後的程式碼不會被執行。
|
|
*
|
|
* @param {string} message - 要輸出的錯誤描述內容。
|
|
* @returns {never} 不會正常回傳(行程會被終止)。
|
|
*/
|
|
function fail(message) {
|
|
process.stderr.write(`[error] ${message}\n`);
|
|
process.exit(1);
|
|
}
|
|
|
|
module.exports = { section, info, fail };
|