From e404ba5989baa550f631fb1262539d1375a856b7 Mon Sep 17 00:00:00 2001 From: eric sciple Date: Tue, 3 Dec 2019 10:28:59 -0500 Subject: Convert checkout to a regular action (#70) --- src/fs-helper.ts | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 src/fs-helper.ts (limited to 'src/fs-helper.ts') diff --git a/src/fs-helper.ts b/src/fs-helper.ts new file mode 100644 index 0000000..c443404 --- /dev/null +++ b/src/fs-helper.ts @@ -0,0 +1,77 @@ +import * as fs from 'fs' + +export function directoryExistsSync(path: string, required?: boolean): boolean { + if (!path) { + throw new Error("Arg 'path' must not be empty") + } + + let stats: fs.Stats + try { + stats = fs.statSync(path) + } catch (error) { + if (error.code === 'ENOENT') { + if (!required) { + return false + } + + throw new Error(`Directory '${path}' does not exist`) + } + + throw new Error( + `Encountered an error when checking whether path '${path}' exists: ${error.message}` + ) + } + + if (stats.isDirectory()) { + return true + } else if (!required) { + return false + } + + throw new Error(`Directory '${path}' does not exist`) +} + +export function existsSync(path: string): boolean { + if (!path) { + throw new Error("Arg 'path' must not be empty") + } + + try { + fs.statSync(path) + } catch (error) { + if (error.code === 'ENOENT') { + return false + } + + throw new Error( + `Encountered an error when checking whether path '${path}' exists: ${error.message}` + ) + } + + return true +} + +export function fileExistsSync(path: string): boolean { + if (!path) { + throw new Error("Arg 'path' must not be empty") + } + + let stats: fs.Stats + try { + stats = fs.statSync(path) + } catch (error) { + if (error.code === 'ENOENT') { + return false + } + + throw new Error( + `Encountered an error when checking whether path '${path}' exists: ${error.message}` + ) + } + + if (!stats.isDirectory()) { + return true + } + + return false +} -- cgit v1.2.3