summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorAcid Chicken (硫酸鶏) <root@acid-chicken.com>2024-02-12 01:02:27 +0000
committerGitHub <noreply@github.com>2024-02-12 10:02:27 +0900
commit3dc095d1c9ae075b28efb521cf3d76961efb6593 (patch)
treee5f85eddbc87aa6bb930b64cab7621e1c95ac61f /scripts
parentMerge branch 'develop' of https://github.com/misskey-dev/misskey into develop (diff)
downloadsharkey-3dc095d1c9ae075b28efb521cf3d76961efb6593.tar.gz
sharkey-3dc095d1c9ae075b28efb521cf3d76961efb6593.tar.bz2
sharkey-3dc095d1c9ae075b28efb521cf3d76961efb6593.zip
feat: provide tarball (#13260)
* feat: provide tarball * build: pack on build-assets * chore: use ignore-walk * chore: debug * build: dependencies
Diffstat (limited to 'scripts')
-rw-r--r--scripts/build-assets.mjs4
-rw-r--r--scripts/tarball.mjs32
2 files changed, 35 insertions, 1 deletions
diff --git a/scripts/build-assets.mjs b/scripts/build-assets.mjs
index d2dabe8532..8a8a50d9ba 100644
--- a/scripts/build-assets.mjs
+++ b/scripts/build-assets.mjs
@@ -12,6 +12,7 @@ import * as terser from 'terser';
import { build as buildLocales } from '../locales/index.js';
import generateDTS from '../locales/generateDTS.js';
import meta from '../package.json' assert { type: "json" };
+import buildTarball from './tarball.mjs';
let locales = buildLocales();
@@ -77,12 +78,13 @@ async function build() {
copyBackendViews(),
buildBackendScript(),
buildBackendStyle(),
+ buildTarball(),
]);
}
await build();
-if (process.argv.includes("--watch")) {
+if (process.argv.includes('--watch')) {
const watcher = fs.watch('./locales');
for await (const event of watcher) {
const filename = event.filename?.replaceAll('\\', '/');
diff --git a/scripts/tarball.mjs b/scripts/tarball.mjs
new file mode 100644
index 0000000000..936a43d270
--- /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', `misskey-${meta.version}.tar.gz`)));
+}