@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 +42 -0
- package/Dockerfile.mk +104 -0
- package/README.md +1 -1
- package/eslint.yaml +1 -1
- package/nunjucks.js +2 -2
- package/package.json +5 -5
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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.
|
|
5
|
-
"stdver": "1.
|
|
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": "
|
|
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.
|
|
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.
|
|
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",
|