diff --git a/examples/book.yml b/examples/book.yml new file mode 100644 index 00000000..881066fa --- /dev/null +++ b/examples/book.yml @@ -0,0 +1,17 @@ +netsuke_version: "1.0" + +vars: + outdir: build/book + +rules: + - name: build + command: "mkdir -p $(dirname {outs}) && pandoc {ins} -o {outs}" + description: Compile document + +targets: + - name: "{{ outdir }}/manuscript.pdf" + rule: build + sources: "{{ glob('chapters/*.md') }}" + +defaults: + - "{{ outdir }}/manuscript.pdf" diff --git a/examples/c_app.yml b/examples/c_app.yml new file mode 100644 index 00000000..e8d04097 --- /dev/null +++ b/examples/c_app.yml @@ -0,0 +1,32 @@ +netsuke_version: "1.0" + +vars: + cc: gcc + cflags: -Wall + objdir: build/obj + +rules: + - name: compile + command: "mkdir -p $(dirname {outs}) && {{ cc }} {{ cflags }} -c {ins} -o {outs}" + description: Compile C source + - name: link + command: "{{ cc }} {{ cflags }} {ins} -o {outs}" + description: Link objects + +# Target list generated from source files + +targets: | + {% for src in glob('src/*.c') %} + - name: "{{ objdir }}/{{ src | basename | replace('.c', '.o') }}" + rule: compile + sources: "{{ src }}" + {% endfor %} + - name: app + rule: link + sources: + {% for src in glob('src/*.c') %} + - "{{ objdir }}/{{ src | basename | replace('.c', '.o') }}" + {% endfor %} + +defaults: + - app diff --git a/examples/photo_album.yml b/examples/photo_album.yml new file mode 100644 index 00000000..c605f9be --- /dev/null +++ b/examples/photo_album.yml @@ -0,0 +1,29 @@ +netsuke_version: "1.0" + +vars: + style: "{{ env('DT_STYLE') | default('natural') }}" + outdir: "build/jpg/{{ style }}" + +rules: + - name: develop + command: "mkdir -p $(dirname {outs}) && darktable-cli {ins} {outs} --style {{ style }}" + description: Develop RAW image + + - name: thumb + command: "mkdir -p $(dirname {outs}) && convert {ins} -resize 200x200^ -gravity center -extent 200x200 {outs}" + description: Create thumbnail + +targets: +{% for raw in glob('photos/*.nef') %} + - name: "{{ outdir }}/{{ raw | basename | replace('.nef', '.jpg') }}" + rule: develop + sources: "{{ raw }}" + - name: "{{ outdir }}/thumbs/{{ raw | basename | replace('.nef', '.jpg') }}" + rule: thumb + sources: "{{ outdir }}/{{ raw | basename | replace('.nef', '.jpg') }}" +{% endfor %} + +defaults: +{% for raw in glob('photos/*.nef') %} + - "{{ outdir }}/thumbs/{{ raw | basename | replace('.nef', '.jpg') }}" +{% endfor %} diff --git a/examples/python_package.yml b/examples/python_package.yml new file mode 100644 index 00000000..d678f2a7 --- /dev/null +++ b/examples/python_package.yml @@ -0,0 +1,33 @@ +netsuke_version: "1.0" + +vars: + python: python3 + venv: .venv + +rules: + - name: setup + command: "{{ python }} -m venv {{ venv }}" + description: Create virtual environment + - name: install + command: "{{ venv }}/bin/pip install -e . -r requirements.txt" + description: Install package + - name: test + command: "{{ venv }}/bin/python -m pytest {{ ins | join(' ') }}" + description: Run tests + +targets: + - name: venv + rule: setup + - name: deps + rule: install + sources: requirements.txt + deps: + - venv + - name: test-results + rule: test + sources: tests + deps: + - deps + +defaults: + - test-results diff --git a/examples/svg_to_png.yml b/examples/svg_to_png.yml new file mode 100644 index 00000000..0c93e42f --- /dev/null +++ b/examples/svg_to_png.yml @@ -0,0 +1,21 @@ +netsuke_version: "1.0" + +vars: + outdir: build/png + +rules: + - name: rasterise + command: "mkdir -p $(dirname {outs}) && inkscape {ins} --export-type=png --export-filename={outs}" + description: Convert SVG to PNG + +targets: +{% for svg in glob('assets/svg/*.svg') %} + - name: "{{ outdir }}/{{ svg | basename | replace('.svg', '.png') }}" + rule: rasterise + sources: "{{ svg }}" +{% endfor %} + +defaults: +{% for svg in glob('assets/svg/*.svg') %} + - "{{ outdir }}/{{ svg | basename | replace('.svg', '.png') }}" +{% endfor %}