@rse/nunjucks-cli 1.5.0 → 1.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/Dockerfile ADDED
@@ -0,0 +1,42 @@
1
+ ##
2
+ ## Dockerfile -- Docker Build Configuration
3
+ ##
4
+
5
+ # build arguments (early)
6
+ ARG IMAGE_PREFIX=docker.io/engelschall/
7
+ ARG IMAGE_NAME=nunjucks-cli
8
+ ARG IMAGE_VERSION=1.5.2
9
+ ARG IMAGE_RELEASE=20240311
10
+ ARG IMAGE_ALIAS=latest
11
+
12
+ # derive image from a certain base image
13
+ FROM node:20.11-alpine3.18
14
+
15
+ # add additional build tools
16
+ RUN apk update && \
17
+ apk upgrade
18
+
19
+ # establish application area and user/group
20
+ RUN mkdir -p /app && \
21
+ apk add --no-cache --virtual .deps1 shadow && \
22
+ groupadd -g 2000 app && \
23
+ useradd -u 2000 -g app -d /app -m -s /bin/bash -p '!' -l app && \
24
+ apk del .deps1 && \
25
+ chown -R app:app /app
26
+ WORKDIR /app
27
+ ENV HOME=/app
28
+
29
+ # install tool
30
+ RUN npm install -g \
31
+ @rse/nunjucks-cli@1.5.2 \
32
+ @rse/nunjucks-addons@1.0.8
33
+
34
+ # cleanup Alpine
35
+ RUN rm -rf /var/cache/apk/*
36
+
37
+ # switch to run-time user
38
+ USER app:app
39
+
40
+ # provide entrypoint
41
+ ENTRYPOINT [ "nunjucks" ]
42
+
package/Dockerfile.mk ADDED
@@ -0,0 +1,104 @@
1
+ ##
2
+ ## Makefile: Docker Build Procedure
3
+ ##
4
+
5
+ # ==== DEFAULT ====
6
+ # default build target
7
+ TARGETS ?= build
8
+ all: $(TARGETS)
9
+
10
+ # ==== COMMON ====
11
+ # configuration of container image
12
+ DOCKER_IMAGE_CONFIG ?= __dummy=1
13
+ IMAGE_CONFIG = \
14
+ IMAGE_PREFIX=`egrep "ARG.*IMAGE_PREFIX" Dockerfile | sed -e 's;^.*=;;' | head -1` && \
15
+ IMAGE_NAME=`egrep "ARG.*IMAGE_NAME" Dockerfile | sed -e 's;^.*=;;' | head -1` && \
16
+ IMAGE_VERSION=`egrep "ARG.*IMAGE_VERSION" Dockerfile | sed -e 's;^.*=;;' | head -1` && \
17
+ IMAGE_RELEASE=`egrep "ARG.*IMAGE_RELEASE" Dockerfile | sed -e 's;^.*=;;' | head -1` && \
18
+ IMAGE_ALIAS=`egrep "ARG.*IMAGE_ALIAS" Dockerfile | sed -e 's;^.*=;;' | head -1` && \
19
+ $(DOCKER_IMAGE_CONFIG)
20
+
21
+ # ==== BUILD ====
22
+ # (re)build a container image
23
+ DOCKER_BUILD_FLAGS ?= --progress=plain --pull --no-cache
24
+ build: Dockerfile
25
+ @$(IMAGE_CONFIG) && \
26
+ echo "++ building Docker image $${IMAGE_PREFIX}$${IMAGE_NAME}:$${IMAGE_VERSION}-$${IMAGE_RELEASE} ($${IMAGE_ALIAS})" && \
27
+ docker build \
28
+ $(DOCKER_BUILD_FLAGS) \
29
+ --build-arg "IMAGE_PREFIX=$${IMAGE_PREFIX}" \
30
+ --build-arg "IMAGE_NAME=$${IMAGE_NAME}" \
31
+ --build-arg "IMAGE_VERSION=$${IMAGE_VERSION}" \
32
+ --build-arg "IMAGE_RELEASE=$${IMAGE_RELEASE}" \
33
+ --build-arg "IMAGE_ALIAS=$${IMAGE_ALIAS}" \
34
+ -t $${IMAGE_PREFIX}$${IMAGE_NAME}:$${IMAGE_ALIAS} \
35
+ -t $${IMAGE_PREFIX}$${IMAGE_NAME}:$${IMAGE_VERSION} \
36
+ -t $${IMAGE_PREFIX}$${IMAGE_NAME}:$${IMAGE_VERSION}-$${IMAGE_RELEASE} \
37
+ -f Dockerfile . && \
38
+ docker image ls $${IMAGE_PREFIX}$${IMAGE_NAME}:$${IMAGE_VERSION}-$${IMAGE_RELEASE}
39
+
40
+ # ==== RUN ====
41
+ # run a container image
42
+ DOCKER_RUN_FLAGS ?= --rm -i -t -e TERM --init
43
+ DOCKER_RUN_ARGS ?=
44
+ run:
45
+ @$(IMAGE_CONFIG) && \
46
+ echo "++ running Docker image $${IMAGE_PREFIX}$${IMAGE_NAME}:$${IMAGE_VERSION}-$${IMAGE_RELEASE}" && \
47
+ docker run \
48
+ --name "$${IMAGE_NAME}-temp" \
49
+ $(DOCKER_RUN_FLAGS) \
50
+ $${IMAGE_PREFIX}$${IMAGE_NAME}:$${IMAGE_VERSION}-$${IMAGE_RELEASE} \
51
+ $(DOCKER_RUN_ARGS)
52
+
53
+ # ==== INSPECT ====
54
+ # inspect a container image
55
+ DOCKER_INSPECT_FLAGS ?= --rm -i -t -e TERM -u root --entrypoint "/bin/bash"
56
+ DOCKER_INSPECT_ARGS ?=
57
+ inspect:
58
+ @$(IMAGE_CONFIG) && \
59
+ echo "++ inspecting Docker image $${IMAGE_PREFIX}$${IMAGE_NAME}:$${IMAGE_VERSION}-$${IMAGE_RELEASE}" && \
60
+ docker run \
61
+ --name "$${IMAGE_NAME}-temp" \
62
+ $(DOCKER_INSPECT_FLAGS) \
63
+ $${IMAGE_PREFIX}$${IMAGE_NAME}:$${IMAGE_VERSION}-$${IMAGE_RELEASE} \
64
+ $(DOCKER_INSPECT_ARGS)
65
+
66
+ # ==== EXEC ====
67
+ # enter a running container image
68
+ DOCKER_EXEC_FLAGS ?= -i -t -e TERM
69
+ DOCKER_EXEC_ARGS ?= /bin/bash
70
+ exec:
71
+ @$(IMAGE_CONFIG) && \
72
+ echo "++ executing command in Docker container of Docker image $${IMAGE_PREFIX}$${IMAGE_NAME}:$${IMAGE_VERSION}-$${IMAGE_RELEASE}" && \
73
+ docker exec \
74
+ $(DOCKER_EXEC_FLAGS) \
75
+ `docker ps --filter "ancestor=$${IMAGE_PREFIX}$${IMAGE_NAME}:$${IMAGE_VERSION}-$${IMAGE_RELEASE}" --format "{{ .ID }}"` \
76
+ $(DOCKER_EXEC_ARGS)
77
+
78
+ # ==== PUSH ====
79
+ # push container image to registry
80
+ push:
81
+ @$(IMAGE_CONFIG) && \
82
+ echo "++ pushing Docker image $${IMAGE_PREFIX}$${IMAGE_NAME}:$${IMAGE_VERSION}-$${IMAGE_RELEASE} ($${IMAGE_ALIAS})" && \
83
+ docker push $${IMAGE_PREFIX}$${IMAGE_NAME}:$${IMAGE_VERSION}-$${IMAGE_RELEASE} && \
84
+ docker push $${IMAGE_PREFIX}$${IMAGE_NAME}:$${IMAGE_VERSION} && \
85
+ docker push $${IMAGE_PREFIX}$${IMAGE_NAME}:$${IMAGE_ALIAS}
86
+
87
+ # ==== CLEAN ====
88
+ # remove container image
89
+ clean:
90
+ @$(IMAGE_CONFIG) && \
91
+ echo "++ removing Docker image $${IMAGE_PREFIX}$${IMAGE_NAME}:$${IMAGE_VERSION}-$${IMAGE_RELEASE} ($${IMAGE_ALIAS})" && \
92
+ docker image rm $${IMAGE_PREFIX}$${IMAGE_NAME}:$${IMAGE_VERSION}-$${IMAGE_RELEASE} >/dev/null 2>&1 || true && \
93
+ docker image rm $${IMAGE_PREFIX}$${IMAGE_NAME}:$${IMAGE_VERSION} >/dev/null 2>&1 || true && \
94
+ docker image rm $${IMAGE_PREFIX}$${IMAGE_NAME}:$${IMAGE_ALIAS} >/dev/null 2>&1 || true && \
95
+
96
+ # ==== PRUNE ====
97
+ # prune entire Docker environment
98
+ prune:
99
+ @echo "++ pruning Docker environment"
100
+ docker container prune -f
101
+ docker network prune -f
102
+ docker volume prune -f
103
+ docker image prune -f
104
+
package/README.md CHANGED
@@ -98,7 +98,7 @@ Hello, world!
98
98
  License
99
99
  -------
100
100
 
101
- Copyright © 2019-2023 Dr. Ralf S. Engelschall (http://engelschall.com/)
101
+ Copyright © 2019-2024 Dr. Ralf S. Engelschall (http://engelschall.com/)
102
102
 
103
103
  Permission is hereby granted, free of charge, to any person obtaining
104
104
  a copy of this software and associated documentation files (the
package/eslint.yaml CHANGED
@@ -1,6 +1,6 @@
1
1
  ##
2
2
  ## nunjucks -- Nunjucks Template Rendering Command-Line Interface
3
- ## Copyright (c) 2019-2023 Dr. Ralf S. Engelschall <http://engelschall.com>
3
+ ## Copyright (c) 2019-2024 Dr. Ralf S. Engelschall <http://engelschall.com>
4
4
  ## Licensed under MIT <http://spdx.org/licenses/MIT.html>
5
5
  ##
6
6
 
package/nunjucks.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  /*
3
3
  ** nunjucks -- Nunjucks Template Rendering Command-Line Interface
4
- ** Copyright (c) 2019-2023 Dr. Ralf S. Engelschall <http://engelschall.com>
4
+ ** Copyright (c) 2019-2024 Dr. Ralf S. Engelschall <http://engelschall.com>
5
5
  ** Licensed under MIT <http://spdx.org/licenses/MIT.html>
6
6
  */
7
7
 
@@ -47,7 +47,7 @@ if (argv.help) {
47
47
  if (argv.version) {
48
48
  console.log(`${my.name} ${my.version} (Node.js ${process.versions.node}, Nunjucks: ${my.dependencies.nunjucks})`)
49
49
  console.log(`${my.description}`)
50
- console.log(`Copyright (c) 2019-2023 ${my.author.name} <${my.author.url}>`)
50
+ console.log(`Copyright (c) 2019-2024 ${my.author.name} <${my.author.url}>`)
51
51
  console.log(`Licensed under ${my.license} <http://spdx.org/licenses/${my.license}.html>`)
52
52
  process.exit(0)
53
53
  }
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@rse/nunjucks-cli",
3
3
  "publishConfig": { "access": "public" },
4
- "version": "1.5.0",
5
- "stdver": "1.4.3.20230827-GA",
4
+ "version": "1.5.2",
5
+ "stdver": "1.5.2-GA",
6
6
  "description": "Nunjucks Template Rendering Command-Line Interface",
7
7
  "author": {
8
8
  "name": "Dr. Ralf S. Engelschall",
@@ -24,15 +24,15 @@
24
24
  "dependencies": {
25
25
  "nunjucks": "3.2.4",
26
26
  "chalk": "4.1.0",
27
- "commander": "11.0.0",
27
+ "commander": "12.0.0",
28
28
  "js-yaml": "4.1.0",
29
29
  "deepmerge": "4.3.1"
30
30
  },
31
31
  "devDependencies": {
32
- "eslint": "8.50.0",
32
+ "eslint": "8.57.0",
33
33
  "eslint-config-standard": "17.1.0",
34
34
  "eslint-plugin-promise": "6.1.1",
35
- "eslint-plugin-import": "2.28.1",
35
+ "eslint-plugin-import": "2.29.1",
36
36
  "eslint-plugin-node": "11.1.0",
37
37
  "remark-cli": "12.0.0",
38
38
  "remark": "15.0.1",