diff options
| author | Marie <marie@kaifa.ch> | 2024-02-19 10:47:42 +0100 |
|---|---|---|
| committer | Marie <marie@kaifa.ch> | 2024-02-19 10:47:42 +0100 |
| commit | 10bfc616706e2903e3a7fd2b461ccfff71b09029 (patch) | |
| tree | 852f49cd59c678d5a28bba755e0d75255b139c3a /scripts/tarball.mjs | |
| parent | merge: Bridged error message for when you try search for a post and it fails ... (diff) | |
| parent | Fix(frontend): オートコンプリートが出るべき状況で出ない... (diff) | |
| download | sharkey-10bfc616706e2903e3a7fd2b461ccfff71b09029.tar.gz sharkey-10bfc616706e2903e3a7fd2b461ccfff71b09029.tar.bz2 sharkey-10bfc616706e2903e3a7fd2b461ccfff71b09029.zip | |
merge: upstream
Diffstat (limited to 'scripts/tarball.mjs')
| -rw-r--r-- | scripts/tarball.mjs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/scripts/tarball.mjs b/scripts/tarball.mjs new file mode 100644 index 0000000000..fbb833d94e --- /dev/null +++ b/scripts/tarball.mjs @@ -0,0 +1,32 @@ +import { createWriteStream } from 'node:fs'; +import { mkdir } from 'node:fs/promises'; +import { resolve } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import glob from 'fast-glob'; +import walk from 'ignore-walk'; +import Pack from 'tar/lib/pack.js'; +import meta from '../package.json' assert { type: "json" }; + +const cwd = fileURLToPath(new URL('..', import.meta.url)); +const ignore = [ + '**/.git/**/*', + '**/*ignore', + '**/.gitmodules', + // Exclude files you don't want to include in the tarball here +]; + +export default async function build() { + const mkdirPromise = mkdir(resolve(cwd, 'built', 'tarball'), { recursive: true }); + const pack = new Pack({ cwd, gzip: true }); + const patterns = await walk({ path: cwd, ignoreFiles: ['.gitignore'] }); + + for await (const entry of glob.stream(patterns, { cwd, ignore, dot: true })) { + pack.add(entry); + } + + pack.end(); + + await mkdirPromise; + + pack.pipe(createWriteStream(resolve(cwd, 'built', 'tarball', `sharkey-${meta.version}.tar.gz`))); +} |