package ortac-dune

  1. Overview
  2. Docs
Generate dune rules for other ortac plugins

Install

Dune Dependency

Authors

Maintainers

Sources

0.7.1.tar.gz
md5=de704f2acde11eb11a3a8f7155d1803c
sha512=060969ff333cd36d445a36ccbab4acf5269a4fae5720389e551fb90c303c09a25db23074b7b243634a507ded1e95a927f4a9af209b21924feda41a57140625b7

doc/src/ortac-dune.plugin/utils.ml.html

Source file utils.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
open Fmt

let stanza k ppf config = pf ppf "@[<v 1>(%a)@]" k config
let stanza_rule k ppf config = pf ppf "%a@." (stanza k) config

let with_target k ppf config =
  let k ppf config = pf ppf "with-stdout-to@;%s@;%a" "%{targets}" k config in
  stanza k ppf config

let ignore_err k ppf config =
  let k ppf config = pf ppf "ignore-stderr@;%a" k config in
  stanza k ppf config

let setenv var value k ppf =
  let k ppf config = pf ppf "setenv@;%s@;%s@;%a" var value k config in
  stanza k ppf

let action ppf k =
  let k ppf config = pf ppf "action@;%a" k config in
  stanza k ppf

let action_with_env var value ppf k =
  let k ppf = setenv var value k ppf in
  action ppf k

let package s ppf =
  let k ppf _ = pf ppf "package %s" s in
  stanza k ppf

let quiet ppf _ = pf ppf "--quiet"
let rule ppf stanzas = pf ppf "rule@;%a" (concat stanzas)
let library ppf stanzas = pf ppf "library@;%a" (concat stanzas)
let test ppf stanzas = pf ppf "test@;%a" (concat stanzas)
let run ppf args = pf ppf "run@;%a" (concat args)
let copy ppf args = pf ppf "copy@;%a" (concat args)
let with_deps ppf _ = pf ppf "%%{deps}"
let ortac ppf _ = pf ppf "ortac"
let runtest ppf _ = pf ppf "(alias runtest)"
let promote ppf _ = pf ppf "(mode promote)"
let targets fn ppf config = pf ppf "(targets %s)" @@ fn config
let deps fn ppf config = pf ppf "(deps %s)" @@ fn config
let dep aux ppf config = pf ppf "%%{dep:%a}" aux config

let optional_argument s prj cfg =
  Option.to_list
  @@ Option.map (fun pref ppf _ -> pf ppf "%s=%s" s pref) (prj cfg)
OCaml

Innovation. Community. Security.