UNPKG

echogarden

Version:

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

52 lines (36 loc) 1.6 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: string, name: string, tarballDir: string) { 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: string, namePrefix: string, tarballDir: string) { 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: string, namePrefix: string, tarballDir: string) { 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) } }