From d707aaffe6e334f613e9a3694046b62808f1ad76 Mon Sep 17 00:00:00 2001 From: Olivers Vitins Date: Sun, 17 Dec 2023 18:19:09 +0200 Subject: [PATCH] feat(config): allow RCZ configs to be located in a folder (#15) --- .rczrc.json => .rcz/config.json | 0 .rczrc.onrelease.js => .rcz/onrelease.js | 0 .rczrc.postrelease.js => .rcz/postrelease.js | 0 src/index.ts | 56 ++++++++++++++++---- 4 files changed, 46 insertions(+), 10 deletions(-) rename .rczrc.json => .rcz/config.json (100%) rename .rczrc.onrelease.js => .rcz/onrelease.js (100%) rename .rczrc.postrelease.js => .rcz/postrelease.js (100%) diff --git a/.rczrc.json b/.rcz/config.json similarity index 100% rename from .rczrc.json rename to .rcz/config.json diff --git a/.rczrc.onrelease.js b/.rcz/onrelease.js similarity index 100% rename from .rczrc.onrelease.js rename to .rcz/onrelease.js diff --git a/.rczrc.postrelease.js b/.rcz/postrelease.js similarity index 100% rename from .rczrc.postrelease.js rename to .rcz/postrelease.js diff --git a/src/index.ts b/src/index.ts index 4c512e6..213ee7e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -38,6 +38,50 @@ const GetConfig = async () => { await fs.promises.readFile(path.join(process.cwd(), "rcz.config.json")) ).toString() ) as Config; + } else if (fs.existsSync(path.join(process.cwd(), ".rcz", "config.json"))) { + return JSON.parse( + ( + await fs.promises.readFile( + path.join(process.cwd(), ".rcz", "config.json") + ) + ).toString() + ) as Config; + } else { + return null; + } +}; + +const GetOnReleaseScript = async () => { + if (fs.existsSync(path.join(process.cwd(), ".rcz.onrelease.js"))) { + return ( + await fs.promises.readFile(path.join(process.cwd(), ".rcz.onrelease.js")) + ).toString(); + } else if (fs.existsSync(path.join(process.cwd(), ".rcz", "onrelease.js"))) { + return ( + await fs.promises.readFile( + path.join(process.cwd(), ".rcz", "onrelease.js") + ) + ).toString(); + } else { + return null; + } +}; + +const GetPostReleaseScript = async () => { + if (fs.existsSync(path.join(process.cwd(), ".rcz.postrelease.js"))) { + return ( + await fs.promises.readFile( + path.join(process.cwd(), ".rcz.postrelease.js") + ) + ).toString(); + } else if ( + fs.existsSync(path.join(process.cwd(), ".rcz", "postrelease.js")) + ) { + return ( + await fs.promises.readFile( + path.join(process.cwd(), ".rcz", "postrelease.js") + ) + ).toString(); } else { return null; } @@ -501,11 +545,7 @@ program const sign = config?.autoSignReleases || options.sign ? true : false; const version = string.replace("v", ""); - const onReleaseFile = ( - await fs.promises.readFile( - path.join(process.cwd(), ".rczrc.onrelease.js") - ) - ).toString(); + const onReleaseFile = await GetOnReleaseScript(); if (onReleaseFile) { const releaseScript = ` @@ -542,11 +582,7 @@ program : [`-a`, `v${version}`, `-m`, `"v${version}"`] ); - const postReleaseFile = ( - await fs.promises.readFile( - path.join(process.cwd(), ".rczrc.postrelease.js") - ) - ).toString(); + const postReleaseFile = await GetPostReleaseScript(); if (postReleaseFile) { const postReleaseScript = `