diff options
| author | Acid Chicken (硫酸鶏) <root@acid-chicken.com> | 2024-02-12 01:02:27 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-12 10:02:27 +0900 |
| commit | 3dc095d1c9ae075b28efb521cf3d76961efb6593 (patch) | |
| tree | e5f85eddbc87aa6bb930b64cab7621e1c95ac61f /scripts | |
| parent | Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop (diff) | |
| download | sharkey-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.mjs | 4 | ||||
| -rw-r--r-- | scripts/tarball.mjs | 32 |
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`))); +} |