diff --git a/package.json b/package.json index ea8e9f0e63..4add6dbbc3 100644 --- a/package.json +++ b/package.json @@ -62,6 +62,7 @@ "cypress": "13.6.3", "eslint": "8.56.0", "fast-glob": "3.3.2", + "ignore-walk": "6.0.4", "ncp": "2.0.0", "start-server-and-test": "2.0.3", "tar": "6.2.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d3e0b2b913..a9ccaa3b99 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -53,6 +53,9 @@ importers: fast-glob: specifier: 3.3.2 version: 3.3.2 + ignore-walk: + specifier: 6.0.4 + version: 6.0.4 ncp: specifier: 2.0.0 version: 2.0.0 @@ -13494,6 +13497,13 @@ packages: resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} dev: true + /ignore-walk@6.0.4: + resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + minimatch: 9.0.3 + dev: true + /ignore@5.2.4: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} diff --git a/scripts/tarball.mjs b/scripts/tarball.mjs index 9de9c03e1d..5f01faec99 100644 --- a/scripts/tarball.mjs +++ b/scripts/tarball.mjs @@ -3,37 +3,25 @@ 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 patterns = [ - '{assets,fluent-emojis,locales,misskey-assets}/**/*', - 'packages/.config/example.yml', - 'packages/{backend,frontend,misskey-bubble-game,misskey-js,misskey-js/generator,misskey-reversi,sw}/{src/**/*,.swcrc,*}', - 'packages/backend/{assets,migration,nsfw-model}/**/*', - 'packages/frontend/{.storybook,@types,assets,lib,public}/**/*', - '!packages/frontend/.storybook/{locale.ts,themes.ts,*.js}', - '!packages/misskey-js/CONTRIBUTING.md', - 'packages/meta.json', - 'scripts/{changelog-checker/{src/**/*,*},*}', - '.node-version', - '.npmrc', - 'CHANGELOD.md', - 'COPYING', - 'LICENSE', - 'README.md', - 'SECURITY.md', - 'package.json', - 'pnpm-lock.yaml', - 'pnpm-workspace.yaml', +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 cwd = fileURLToPath(new URL('..', import.meta.url)); 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)) { + for await (const entry of glob.stream(patterns, { cwd, ignore, dot: true })) { + console.log(entry); pack.add(entry); }