From cd891bf6a00d91ea3d88a7b2a302514d31a3b758 Mon Sep 17 00:00:00 2001 From: Marko Korhonen Date: Thu, 23 Nov 2023 17:38:30 +0200 Subject: [PATCH] Add shebang to output file so a shell script is no longer needed --- Makefile | 1 + bin/wtc | 4 ---- package-lock.json | 42 ++++++++++++++++++++++++++++++++++++++++++ package.json | 3 ++- rollup.config.js | 5 +++-- 5 files changed, 48 insertions(+), 7 deletions(-) delete mode 100755 bin/wtc diff --git a/Makefile b/Makefile index 7ef3132..a1f0c68 100644 --- a/Makefile +++ b/Makefile @@ -13,6 +13,7 @@ node_modules: build: node_modules npm run build + chmod +x dist/wtc clean: rm -r dist node_modules diff --git a/bin/wtc b/bin/wtc deleted file mode 100755 index bf01370..0000000 --- a/bin/wtc +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -DIR="$(dirname "$(readlink -f "$0")")" -node "$DIR/../dist/wtc.js" "$@" diff --git a/package-lock.json b/package-lock.json index 8ff0ae9..4ab161d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,6 +26,7 @@ "@typescript-eslint/eslint-plugin": "^6.10.0", "eslint-config-prettier": "^9.0.0", "rollup": "^4.5.1", + "rollup-plugin-add-shebang": "^0.3.1", "tslib": "^2.6.2" } }, @@ -1643,6 +1644,15 @@ "node": ">=10" } }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -1958,6 +1968,31 @@ "fsevents": "~2.3.2" } }, + "node_modules/rollup-plugin-add-shebang": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-add-shebang/-/rollup-plugin-add-shebang-0.3.1.tgz", + "integrity": "sha512-tKONSgKoVw9Om1cp1CnAlPQ9nsHBzu8fInKObX3zT5KZVoAJtslD1aBL84lJuKLeh+L28dB26CBBeYT+doTMLg==", + "dev": true, + "dependencies": { + "magic-string": "^0.25.3", + "rollup-pluginutils": "^2.8.1" + } + }, + "node_modules/rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "dependencies": { + "estree-walker": "^0.6.1" + } + }, + "node_modules/rollup-pluginutils/node_modules/estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -2082,6 +2117,13 @@ "source-map": "^0.6.0" } }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true + }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", diff --git a/package.json b/package.json index 53bce44..7140b41 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "main": "src/main.ts", "type": "module", "bin": { - "wtc": "bin/wtc" + "wtc": "dist/wtc" }, "scripts": { "build": "rollup -c" @@ -34,6 +34,7 @@ "@typescript-eslint/eslint-plugin": "^6.10.0", "eslint-config-prettier": "^9.0.0", "rollup": "^4.5.1", + "rollup-plugin-add-shebang": "^0.3.1", "tslib": "^2.6.2" }, "dependencies": { diff --git a/rollup.config.js b/rollup.config.js index 3d31556..0e1e6ab 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,14 +1,15 @@ import typescript from '@rollup/plugin-typescript'; import terser from '@rollup/plugin-terser'; +import shebang from 'rollup-plugin-add-shebang'; /** @type {import('rollup').RollupOptions} */ const config = { input: 'src/main.ts', output: { format: 'esm', - file: 'dist/wtc.js', + file: 'dist/wtc', }, - plugins: [typescript(), terser()], + plugins: [typescript(), terser(), shebang({ include: 'dist/wtc' })], }; export default config;