summaryrefslogtreecommitdiff
path: root/scripts/tarball.mjs
diff options
context:
space:
mode:
authorMarie <marie@kaifa.ch>2024-02-19 10:47:42 +0100
committerMarie <marie@kaifa.ch>2024-02-19 10:47:42 +0100
commit10bfc616706e2903e3a7fd2b461ccfff71b09029 (patch)
tree852f49cd59c678d5a28bba755e0d75255b139c3a /scripts/tarball.mjs
parentmerge: Bridged error message for when you try search for a post and it fails ... (diff)
parentFix(frontend): オートコンプリートが出るべき状況で出ない... (diff)
downloadsharkey-10bfc616706e2903e3a7fd2b461ccfff71b09029.tar.gz
sharkey-10bfc616706e2903e3a7fd2b461ccfff71b09029.tar.bz2
sharkey-10bfc616706e2903e3a7fd2b461ccfff71b09029.zip
merge: upstream
Diffstat (limited to 'scripts/tarball.mjs')
-rw-r--r--scripts/tarball.mjs32
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`)));
+}