mirror of
https://github.com/redhat-actions/buildah-build.git
synced 2025-04-20 09:01:23 +00:00
Work around https://github.com/redhat-actions/buildah-build/issues/45 Signed-off-by: divyansh42 <diagrawa@redhat.com>
56 lines
1.6 KiB
TypeScript
56 lines
1.6 KiB
TypeScript
import * as ini from "ini";
|
|
import { promises as fs } from "fs";
|
|
import * as core from "@actions/core";
|
|
import * as path from "path";
|
|
import * as io from "@actions/io";
|
|
import * as os from "os";
|
|
|
|
async function findStorageDriver(filePaths: string[]): Promise<string> {
|
|
let storageDriver = "";
|
|
for (const filePath of filePaths) {
|
|
core.debug(`Checking if the storage file exists at ${filePath}`);
|
|
if (await fileExists(filePath)) {
|
|
core.debug(`Storage file exists at ${filePath}`);
|
|
const fileContent = ini.parse(await fs.readFile(filePath, "utf-8"));
|
|
if (fileContent.storage.driver) {
|
|
storageDriver = fileContent.storage.driver;
|
|
}
|
|
}
|
|
}
|
|
return storageDriver;
|
|
}
|
|
|
|
export async function isStorageDriverOverlay(): Promise<boolean> {
|
|
let xdgConfigHome = path.join(os.homedir(), ".config");
|
|
if (process.env.XDG_CONFIG_HOME) {
|
|
xdgConfigHome = process.env.XDG_CONFIG_HOME;
|
|
}
|
|
const filePaths: string[] = [
|
|
"/etc/containers/storage.conf",
|
|
path.join(xdgConfigHome, "containers/storage.conf"),
|
|
];
|
|
const storageDriver = await findStorageDriver(filePaths);
|
|
return (storageDriver === "overlay");
|
|
}
|
|
|
|
async function fileExists(filePath: string): Promise<boolean> {
|
|
try {
|
|
await fs.access(filePath);
|
|
return true;
|
|
}
|
|
catch (err) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
export async function findFuseOverlayfsPath(): Promise<string | undefined> {
|
|
let fuseOverlayfsPath;
|
|
try {
|
|
fuseOverlayfsPath = await io.which("fuse-overlayfs");
|
|
}
|
|
catch (err) {
|
|
core.debug(err);
|
|
}
|
|
|
|
return fuseOverlayfsPath;
|
|
}
|