summaryrefslogtreecommitdiff
path: root/patch
diff options
context:
space:
mode:
Diffstat (limited to 'patch')
-rw-r--r--patch/RULES140
1 files changed, 0 insertions, 140 deletions
diff --git a/patch/RULES b/patch/RULES
deleted file mode 100644
index b1ba95e..0000000
--- a/patch/RULES
+++ /dev/null
@@ -1,140 +0,0 @@
-{ "file":
- { "doc": ["Replace a file, logically in place, by a patched version"]
- , "target_fields": ["src", "patch"]
- , "string_fields": ["patch-part"]
- , "config_vars": ["PATCH", "ENV"]
- , "field_doc":
- { "src":
- [ "The single source file to patch, typically an explicit file reference."
- ]
- , "patch": ["The patch to apply."]
- , "patch-part":
- [ "If the patch contains hunks for multiple files, only apply hunks for"
- , "the specified file path. Individual directory components are joined"
- , "with \"/\". Note that the patch must be provided in unified format."
- ]
- }
- , "artifacts_doc":
- ["The patched file, staged to the position the of the original file"]
- , "runfiles_doc": ["Same as artifacts"]
- , "imports":
- { "stage_field": ["./", "..", "stage_singleton_field"]
- , "stage_artifact": ["./", "..", "stage_artifact_to_singleton_field"]
- }
- , "expression":
- { "type": "let*"
- , "bindings":
- [ [ "orig"
- , { "type": "let*"
- , "bindings": [["fieldname", "src"], ["location", "orig"]]
- , "body": {"type": "CALL_EXPRESSION", "name": "stage_field"}
- }
- ]
- , [ "patch"
- , { "type": "let*"
- , "bindings": [["fieldname", "patch"], ["location", "patch"]]
- , "body": {"type": "CALL_EXPRESSION", "name": "stage_field"}
- }
- ]
- , [ "patch-part"
- , { "type": "join"
- , "separator": "\\/"
- , "$1": {"type": "FIELD", "name": "patch-part"}
- }
- ]
- , [ "splitpatch"
- , { "type": "BLOB"
- , "data":
- { "type": "join"
- , "separator": "\n"
- , "$1":
- [ "set -e"
- , { "type": "join"
- , "$1":
- [ { "type": "join_cmd"
- , "$1":
- [ "sed"
- , "-n"
- , { "type": "join"
- , "$1":
- [ "/^--- "
- , {"type": "var", "name": "patch-part"}
- , "/,"
- , "/^[^-+@\\ ]\\|^---\\ /p"
- ]
- }
- ]
- }
- , " $1 | sed '$d' > patch"
- ]
- }
- ]
- }
- }
- ]
- , [ "patch"
- , { "type": "if"
- , "cond": {"type": "var", "name": "patch-part"}
- , "then":
- { "type": "ACTION"
- , "inputs":
- { "type": "map_union"
- , "$1":
- [ { "type": "to_subdir"
- , "subdir": "in"
- , "$1": {"type": "var", "name": "patch"}
- }
- , { "type": "singleton_map"
- , "key": "splitpatch"
- , "value": {"type": "var", "name": "splitpatch"}
- }
- ]
- }
- , "outs": ["patch"]
- , "cmd": ["sh", "./splitpatch", "in/patch"]
- , "env":
- {"type": "var", "name": "ENV", "default": {"type": "empty_map"}}
- }
- , "else": {"type": "var", "name": "patch"}
- }
- ]
- , [ "inputs"
- , { "type": "map_union"
- , "$1":
- [{"type": "var", "name": "orig"}, {"type": "var", "name": "patch"}]
- }
- ]
- , [ "patched"
- , { "type": "ACTION"
- , "inputs": {"type": "var", "name": "inputs"}
- , "outs": ["patched"]
- , "cmd":
- [ {"type": "var", "name": "PATCH", "default": "patch"}
- , "-s"
- , "--read-only=ignore"
- , "--follow-symlinks"
- , "-o"
- , "patched"
- , "orig"
- , "patch"
- ]
- }
- ]
- , [ "result"
- , { "type": "let*"
- , "bindings":
- [ ["artifact", {"type": "var", "name": "patched"}]
- , ["fieldname", "src"]
- ]
- , "body": {"type": "CALL_EXPRESSION", "name": "stage_artifact"}
- }
- ]
- ]
- , "body":
- { "type": "RESULT"
- , "artifacts": {"type": "var", "name": "result"}
- , "runfiles": {"type": "var", "name": "result"}
- }
- }
- }
-}