mirror of
https://github.com/tests-always-included/mo.git
synced 2026-04-08 00:40:38 +02:00
Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
81f9ec326d | ||
|
|
dae1c66f8f | ||
|
|
08576fca7b | ||
|
|
3aa5c462f8 | ||
|
|
a28ed0ccd5 | ||
|
|
c86fd9a89b | ||
|
|
03eb3925ac | ||
|
|
8e3e08a42b | ||
|
|
4c332c9188 | ||
|
|
67ba8bae2c | ||
|
|
1d2617dde1 |
13
.github/workflows/ci.yaml
vendored
Normal file
13
.github/workflows/ci.yaml
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
name: CI
|
||||
on: [push]
|
||||
jobs:
|
||||
test:
|
||||
name: Test
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v1
|
||||
- name: Run tests
|
||||
run: ./run-tests
|
||||
- name: Run against spec
|
||||
run: ./run-spec
|
||||
45
.github/workflows/release.yaml
vendored
Normal file
45
.github/workflows/release.yaml
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
name: docker push
|
||||
on: [push]
|
||||
jobs:
|
||||
push_to_registry:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: Docker meta
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
id: docker_meta
|
||||
uses: crazy-max/ghaction-docker-meta@v1
|
||||
with:
|
||||
images: ghcr.io/${{ github.repository }}
|
||||
tag-match: v(.*)
|
||||
- name: Set up QEMU
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
uses: docker/setup-qemu-action@v1
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
- name: Cache Docker layers
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: /tmp/.buildx-cache
|
||||
key: ${{ runner.os }}-buildx-${{ github.sha }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-buildx-
|
||||
- name: Login to GitHub Container Registry
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v2
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
with:
|
||||
builder: ${{ steps.buildx.outputs.name }}
|
||||
platforms: linux/amd64,linux/arm64
|
||||
tags: ${{ steps.docker_meta.outputs.tags }}
|
||||
cache-from: type=local,src=/tmp/.buildx-cache
|
||||
cache-to: type=local,dest=/tmp/.buildx-cache
|
||||
push: true
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -5,3 +5,5 @@ tests/*.diff
|
||||
spec/
|
||||
spec-runner/
|
||||
node_modules/
|
||||
package.json
|
||||
package-lock.json
|
||||
|
||||
2
API.md
2
API.md
@@ -36,7 +36,7 @@ Display a help message.
|
||||
|
||||
-s=FILE, --source=FILE
|
||||
|
||||
Source a file into the environment before processing template files.
|
||||
Source a file into the environment before processing template files. This can be used multiple times.
|
||||
|
||||
--
|
||||
|
||||
|
||||
11
Dockerfile
Normal file
11
Dockerfile
Normal file
@@ -0,0 +1,11 @@
|
||||
FROM alpine:3.13.4
|
||||
|
||||
COPY ./mo .
|
||||
RUN apk add --update bash && \
|
||||
chmod +x mo &&\
|
||||
mv mo /usr/local/bin/mo && \
|
||||
rm -rf /var/cache/apk/*
|
||||
|
||||
WORKDIR /opt
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/mo"]
|
||||
4
mo
4
mo
@@ -25,6 +25,7 @@
|
||||
#/ This message.
|
||||
#/ -s=FILE, --source=FILE
|
||||
#/ Load FILE into the environment before processing templates.
|
||||
#/ Can be used multiple times.
|
||||
#
|
||||
# Mo is under a MIT style licence with an additional non-advertising clause.
|
||||
# See LICENSE.md for the full text.
|
||||
@@ -71,6 +72,7 @@
|
||||
# -s=FILE, --source=FILE
|
||||
#
|
||||
# Source a file into the environment before processing template files.
|
||||
# This can be used multiple times.
|
||||
#
|
||||
# --
|
||||
#
|
||||
@@ -300,7 +302,7 @@ moFindEndTag() {
|
||||
moFindString() {
|
||||
local pos string
|
||||
|
||||
string=${2%%$3*}
|
||||
string=${2%%"$3"*}
|
||||
[[ "$string" == "$2" ]] && pos=-1 || pos=${#string}
|
||||
local "$1" && moIndirect "$1" "$pos"
|
||||
}
|
||||
|
||||
10
package.json
10
package.json
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"async": "*"
|
||||
},
|
||||
"scripts": {
|
||||
"clean": "rm -rf package-lock.json node_modules/ spec/",
|
||||
"install-tests": "npm install; git clone https://github.com/mustache/spec.git spec",
|
||||
"test": "node run-spec.js spec/specs/*.json"
|
||||
}
|
||||
}
|
||||
20
run-spec
Executable file
20
run-spec
Executable file
@@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Create a package.json so the dependency package is installed in the local
|
||||
# directory
|
||||
echo '{"private":true, "dependencies":{"async": "*"}}' > package.json
|
||||
npm install
|
||||
|
||||
# Install or update the specs
|
||||
if [[ ! -d spec ]]; then
|
||||
git clone https://github.com/mustache/spec.git spec
|
||||
else
|
||||
(
|
||||
cd spec;
|
||||
git pull
|
||||
)
|
||||
fi
|
||||
|
||||
# Actually run the specs
|
||||
node run-spec.js spec/specs/*.json
|
||||
|
||||
@@ -14,14 +14,15 @@ Simple usage:
|
||||
Options:
|
||||
|
||||
-u, --fail-not-set
|
||||
- Fail upon expansion of an unset variable.
|
||||
Fail upon expansion of an unset variable.
|
||||
-x, --fail-on-function
|
||||
- Fail when a function returns a non-zero status code.
|
||||
Fail when a function returns a non-zero status code.
|
||||
-e, --false
|
||||
- Treat the string "false" as empty for conditionals.
|
||||
Treat the string "false" as empty for conditionals.
|
||||
-h, --help
|
||||
- This message.
|
||||
This message.
|
||||
-s=FILE, --source=FILE
|
||||
- Load FILE into the environment before processing templates.
|
||||
Load FILE into the environment before processing templates.
|
||||
Can be used multiple times.
|
||||
|
||||
MO_VERSION=2.2.0
|
||||
|
||||
2
tests/source-multiple-1.vars
Normal file
2
tests/source-multiple-1.vars
Normal file
@@ -0,0 +1,2 @@
|
||||
export A=from1
|
||||
export B=from1
|
||||
2
tests/source-multiple-2.vars
Normal file
2
tests/source-multiple-2.vars
Normal file
@@ -0,0 +1,2 @@
|
||||
export B=from2
|
||||
export C=from2
|
||||
3
tests/source-multiple.expected
Normal file
3
tests/source-multiple.expected
Normal file
@@ -0,0 +1,3 @@
|
||||
A: from1
|
||||
B: from2
|
||||
C: from2
|
||||
8
tests/source-multiple.sh
Executable file
8
tests/source-multiple.sh
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
cd "${0%/*}" || exit 1
|
||||
cat <<EOF | ../mo --source=source-multiple-1.vars --source=source-multiple-2.vars
|
||||
A: {{A}}
|
||||
B: {{B}}
|
||||
C: {{C}}
|
||||
EOF
|
||||
Reference in New Issue
Block a user