public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Dominik Csapak <d.csapak@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH v2 1/3] ship proper nodejs module 'pve-eslint'
Date: Mon, 19 Jul 2021 12:31:47 +0200	[thread overview]
Message-ID: <20210719103149.3430829-2-d.csapak@proxmox.com> (raw)
In-Reply-To: <20210719103149.3430829-1-d.csapak@proxmox.com>

instead of concatenating the eslint module into our app.js, ship
a 'pve-eslint' module that exports the built eslint module

to do this, we have to leave the module type on 'umd' instead of
changing to 'var' so that nodejs can properly import it.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
 Makefile                                |  2 +-
 debian/control                          |  7 +++++--
 debian/dirs                             |  1 +
 debian/links                            |  1 +
 debian/rules                            |  5 ++++-
 patches/0001-adapt-webpack-config.patch | 19 +++++--------------
 src/Makefile                            | 15 ---------------
 src/{ => bin}/app.js                    |  5 ++++-
 src/index.js                            |  3 +++
 src/package.json                        |  9 +++++++++
 10 files changed, 33 insertions(+), 34 deletions(-)
 create mode 100644 debian/dirs
 create mode 100644 debian/links
 delete mode 100644 src/Makefile
 rename src/{ => bin}/app.js (99%)
 create mode 100644 src/index.js
 create mode 100644 src/package.json

diff --git a/Makefile b/Makefile
index 9dbe3d0..2a6666c 100644
--- a/Makefile
+++ b/Makefile
@@ -49,7 +49,7 @@ download:
 # NOTE: needs npm installed, downloads packages from npm
 .PHONY: buildupstream
 buildupstream: ${BUILDSRC}
-	cp ${BUILDSRC}/build/eslint.js ${SRCDIR}/eslint.js
+	cp ${BUILDSRC}/build/eslint.js ${SRCDIR}/lib/eslint.js
 
 ${BUILDSRC}: ${UPSTREAM} patches
 	rm -rf $@
diff --git a/debian/control b/debian/control
index 3f9b014..7ea3664 100644
--- a/debian/control
+++ b/debian/control
@@ -2,13 +2,16 @@ Source: pve-eslint
 Section: devel
 Priority: optional
 Maintainer: Proxmox Support Team <support@proxmox.com>
-Build-Depends: debhelper (>= 12~)
+Build-Depends: debhelper (>= 12~),
+               nodejs,
+               pkg-js-tools (>= 0.8.11)
 Standards-Version: 4.3.0
 Homepage: http://www.proxmox.com
 
 Package: pve-eslint
 Architecture: all
-Depends: node-commander, node-colors, nodejs, ${misc:Depends},
+Depends: node-commander, node-colors, nodejs (>= ${nodejs:Version}), ${misc:Depends},
+Provides: ${nodejs:Provides}
 Description: ESLint for Proxmox Virtual Environment development
  This package contains a version of eslint used to develop the
  Proxmox Virtual Environment, and other Proxmox projects, web GUI.
diff --git a/debian/dirs b/debian/dirs
new file mode 100644
index 0000000..e772481
--- /dev/null
+++ b/debian/dirs
@@ -0,0 +1 @@
+usr/bin
diff --git a/debian/links b/debian/links
new file mode 100644
index 0000000..99342ed
--- /dev/null
+++ b/debian/links
@@ -0,0 +1 @@
+usr/share/nodejs/pve-eslint/bin/app.js usr/bin/eslint
diff --git a/debian/rules b/debian/rules
index 2d33f6a..b4c4090 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,4 +1,7 @@
 #!/usr/bin/make -f
 
 %:
-	dh $@
+	dh $@ --with nodejs
+
+execute_after_dh_fixperms:
+	chmod --recursive a+x -- debian/*/usr/share/nodejs/pve-eslint/bin/*
diff --git a/patches/0001-adapt-webpack-config.patch b/patches/0001-adapt-webpack-config.patch
index 4698e74..b0201e1 100644
--- a/patches/0001-adapt-webpack-config.patch
+++ b/patches/0001-adapt-webpack-config.patch
@@ -3,21 +3,20 @@ From: Dominik Csapak <d.csapak@proxmox.com>
 Date: Thu, 2 Apr 2020 07:10:18 +0000
 Subject: [PATCH] adapt webpack config
 
-changes to 'var' from 'umd' since we want to use it in the same file
 adds 'cli-engine' to build (we use it in our wrapper)
 and target 'node' since we will use it on the cli
 
 Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
 ---
- webpack.config.js | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
+ webpack.config.js | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/webpack.config.js b/webpack.config.js
-index 29d60cb4..95027075 100644
+index a22c99b..9209159 100644
 --- a/webpack.config.js
 +++ b/webpack.config.js
-@@ -2,14 +2,14 @@
- 
+@@ -4,8 +4,9 @@ const NodePolyfillPlugin = require("node-polyfill-webpack-plugin");
+ /** @type {import("webpack").Configuration} */
  module.exports = {
      mode: "none",
 +    target: "node",
@@ -27,13 +26,5 @@ index 29d60cb4..95027075 100644
      },
      output: {
          filename: "[name].js",
-         library: "[name]",
--        libraryTarget: "umd",
--        globalObject: "this"
-+        libraryTarget: "var"
-     },
-     module: {
-         rules: [
 -- 
 2.20.1
-
diff --git a/src/Makefile b/src/Makefile
deleted file mode 100644
index bef1c57..0000000
diff --git a/src/app.js b/src/bin/app.js
similarity index 99%
rename from src/app.js
rename to src/bin/app.js
index 9226234..8a28923 100644
--- a/src/app.js
+++ b/src/bin/app.js
@@ -1,9 +1,12 @@
-(function() {
+#!/usr/bin/env node
+
+(async function(){
 'use strict';
 
 const path = require('path');
 const color = require('colors');
 const program = require('commander');
+const eslint = require('pve-eslint');
 
 program
     .usage('[options] [<file(s) ...>]')
diff --git a/src/index.js b/src/index.js
new file mode 100644
index 0000000..01b9a1d
--- /dev/null
+++ b/src/index.js
@@ -0,0 +1,3 @@
+const eslint = require('./lib/eslint.js');
+
+module.exports = eslint;
diff --git a/src/package.json b/src/package.json
new file mode 100644
index 0000000..b08184b
--- /dev/null
+++ b/src/package.json
@@ -0,0 +1,9 @@
+{
+    "name": "pve-eslint",
+    "version": "7.28.0",
+    "files": [
+	"index.js",
+	"bin/app.js",
+	"lib/eslint.js"
+    ]
+}
-- 
2.30.2





  reply	other threads:[~2021-07-19 10:32 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-19 10:31 [pve-devel] [PATCH v2 0/3] make linting threaded Dominik Csapak
2021-07-19 10:31 ` Dominik Csapak [this message]
2021-08-25 16:38   ` [pve-devel] [PATCH v2 1/3] ship proper nodejs module 'pve-eslint' Thomas Lamprecht
2021-08-30  9:17     ` Dominik Csapak
2021-08-30  9:25       ` Thomas Lamprecht
2021-08-30 10:06         ` Dominik Csapak
2021-08-30 10:36           ` [pve-devel] applied: " Thomas Lamprecht
2021-08-30 10:43             ` Dominik Csapak
2021-08-30 11:03               ` Thomas Lamprecht
2021-07-19 10:31 ` [pve-devel] [PATCH v2 2/3] remove unnecessary eslint.js Dominik Csapak
2021-07-19 10:31 ` [pve-devel] [PATCH v2 3/3] use worker_threads for linting Dominik Csapak

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210719103149.3430829-2-d.csapak@proxmox.com \
    --to=d.csapak@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal