diff --git a/lib/index.js b/lib/index.js index 3a2345a..12f3b5e 100644 --- a/lib/index.js +++ b/lib/index.js @@ -430,8 +430,8 @@ function main() { const files = [ { name: core.getInput("name"), - contents: core.getInput("key", { - required: true, + contents: insertLf(core.getInput("key", { required: true }), { + append: true, }), options: { mode: 0o400, @@ -440,9 +440,10 @@ function main() { }, { name: "known_hosts", - contents: insertLf(core.getInput("known_hosts", { - required: true, - })), + contents: insertLf(core.getInput("known_hosts", { required: true }), { + prepend: true, + append: true, + }), options: { mode: 0o644, flag: "a", @@ -450,7 +451,10 @@ function main() { }, { name: "config", - contents: insertLf(core.getInput("config")), + contents: insertLf(core.getInput("config"), { + prepend: true, + append: true, + }), options: { mode: 0o644, flag: "a", @@ -505,19 +509,21 @@ function getHomeEnv() { } /** * prepend/append LF to value if not empty - * @param value the value to prepend LF - * @returns prepended value + * @param value the value to insert LF + * @param options options + * @returns new value */ -function insertLf(value) { +function insertLf(value, options) { + const normalizedOptions = Object.assign({ prepend: false, append: false }, options); let affectedValue = value; if (value.length === 0) { // do nothing if empty return ""; } - if (!affectedValue.startsWith("\n")) { + if (normalizedOptions.prepend && !affectedValue.startsWith("\n")) { affectedValue = `\n${affectedValue}`; } - if (!affectedValue.endsWith("\n")) { + if (normalizedOptions.append && !affectedValue.endsWith("\n")) { affectedValue = `${affectedValue}\n`; } return affectedValue; diff --git a/src/main.ts b/src/main.ts index 73b704a..97c78e8 100644 --- a/src/main.ts +++ b/src/main.ts @@ -10,6 +10,13 @@ interface FileInfo options: fs.WriteFileOptions; } +/** options for insertLf() */ +interface InsertLfOptions +{ + prepend?: boolean; + append?: boolean; +} + /** * main function */ @@ -20,9 +27,9 @@ function main(): void const files: FileInfo[] = [ { name: core.getInput("name"), - contents: insertLfToEnd(core.getInput("key", { - required: true, - })), + contents: insertLf(core.getInput("key", {required: true}), { + append: true, + }), options: { mode: 0o400, flag: "ax", @@ -30,9 +37,10 @@ function main(): void }, { name: "known_hosts", - contents: insertLf(core.getInput("known_hosts", { - required: true, - })), + contents: insertLf(core.getInput("known_hosts", {required: true}), { + prepend: true, + append: true, + }), options: { mode: 0o644, flag: "a", @@ -40,7 +48,10 @@ function main(): void }, { name: "config", - contents: insertLf(core.getInput("config")), + contents: insertLf(core.getInput("config"), { + prepend: true, + append: true, + }), options: { mode: 0o644, flag: "a", @@ -110,12 +121,18 @@ function getHomeEnv(): string } /** - * append LF to value to the end if not empty - * @param value the value to prepend LF - * @returns prepended value + * prepend/append LF to value if not empty + * @param value the value to insert LF + * @param options options + * @returns new value */ -function insertLfToEnd(value: string): string +function insertLf(value: string, options: InsertLfOptions): string { + const normalizedOptions: Required = { + prepend: false, + append: false, + ...options, + }; let affectedValue = value; if(value.length === 0) @@ -123,7 +140,11 @@ function insertLfToEnd(value: string): string // do nothing if empty return ""; } - if(!affectedValue.endsWith("\n")) + if(normalizedOptions.prepend && !affectedValue.startsWith("\n")) + { + affectedValue = `\n${affectedValue}`; + } + if(normalizedOptions.append && !affectedValue.endsWith("\n")) { affectedValue = `${affectedValue}\n`; } @@ -131,27 +152,4 @@ function insertLfToEnd(value: string): string return affectedValue; } -/** - * prepend/append LF to value if not empty - * @param value the value to prepend LF - * @returns prepended value - */ -function insertLf(value: string): string -{ - let affectedValue = value; - - if(value.length === 0) - { - // do nothing if empty - return ""; - } - if(!affectedValue.startsWith("\n")) - { - affectedValue = `\n${affectedValue}`; - } - affectedValue = insertLfToEnd(affectedValue); - - return affectedValue; -} - main();