UNPKG

echogarden

Version:

An easy-to-use speech toolset. Includes tools for synthesis, recognition, alignment, speech translation, language detection, source separation and more.

37 lines 1.7 kB
import { createTarball } from './Compression.js'; import { ensureDir, move, readdir, stat } from './FileSystem.js'; import { appName } from '../api/Common.js'; import { getRandomHexString } from './Utilities.js'; import { getAppTempDir, getFileNameWithoutExtension, joinPath } from './PathUtilities.js'; export async function createNamedTarball(inputPath, name, tarballDir) { const tempDir = getAppTempDir(appName); await ensureDir(tempDir); const tempFilename = joinPath(tempDir, getRandomHexString(16)); await createTarball(inputPath, tempFilename, name); const targetFilname = joinPath(tarballDir, `${name}.tar.gz`); await move(tempFilename, targetFilname); } export async function createTarballForEachDirIn(baseDir, namePrefix, tarballDir) { for (const dirName of await readdir(baseDir)) { const dirPath = joinPath(baseDir, dirName); const fileStat = await stat(dirPath); if (!fileStat.isDirectory()) { continue; } const archiveName = `${namePrefix}-${dirName}`; await createNamedTarball(dirPath, archiveName, tarballDir); } } export async function createTarballForEachFileIn(baseDir, namePrefix, tarballDir) { for (const filename of await readdir(baseDir)) { const filenameWithoutExtension = getFileNameWithoutExtension(filename); const filePath = joinPath(baseDir, filename); const fileStat = await stat(filePath); if (!fileStat.isFile()) { continue; } const archiveName = `${namePrefix}-${filenameWithoutExtension}`; await createNamedTarball(filePath, archiveName, tarballDir); } } //# sourceMappingURL=TarballMaker.js.map