summaryrefslogtreecommitdiff
path: root/format-json/RULES
blob: 1bfb36cb393bd46d528fc53a3a8f708780858aaa (plain)
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
{ "fmt":
  { "target_fields": ["files"]
  , "implicit": {"formatter": [["@", "bin", "", "json-format.py"]]}
  , "imports": {"stage": "stage_singleton_field"}
  , "tainted": ["lint"]
  , "expression":
    { "type": "let*"
    , "bindings":
      [ ["fieldname", "formatter"]
      , ["location", "format"]
      , ["format", {"type": "CALL_EXPRESSION", "name": "stage"}]
      , [ "diffs"
        , { "type": "disjoint_map_union"
          , "$1":
            { "type": "foreach"
            , "var": "dep"
            , "range": {"type": "FIELD", "name": "files"}
            , "body":
              { "type": "disjoint_map_union"
              , "$1":
                { "type": "foreach_map"
                , "range":
                  { "type": "DEP_ARTIFACTS"
                  , "dep": {"type": "var", "name": "dep"}
                  }
                , "body":
                  { "type": "ACTION"
                  , "outs":
                    [ { "type": "join"
                      , "$1": [{"type": "var", "name": "_"}, ".diff"]
                      }
                    ]
                  , "inputs":
                    { "type": "disjoint_map_union"
                    , "$1":
                      [ {"type": "var", "name": "format"}
                      , { "type": "singleton_map"
                        , "key":
                          { "type": "join"
                          , "$1": [{"type": "var", "name": "_"}, ".orig"]
                          }
                        , "value": {"type": "var", "name": "$_"}
                        }
                      ]
                    }
                  , "cmd":
                    [ "sh"
                    , "-c"
                    , { "type": "join"
                      , "separator": " "
                      , "$1":
                        [ "./format -s"
                        , { "type": "join_cmd"
                          , "$1":
                            [ { "type": "join"
                              , "$1": [{"type": "var", "name": "_"}, ".orig"]
                              }
                            ]
                          }
                        , ">"
                        , { "type": "join_cmd"
                          , "$1": [{"type": "var", "name": "_"}]
                          }
                        , "&& diff -u"
                        , { "type": "join_cmd"
                          , "$1":
                            [ { "type": "join"
                              , "$1": [{"type": "var", "name": "_"}, ".orig"]
                              }
                            ]
                          }
                        , { "type": "join_cmd"
                          , "$1": [{"type": "var", "name": "_"}]
                          }
                        , ">"
                        , { "type": "join_cmd"
                          , "$1":
                            [ { "type": "join"
                              , "$1": [{"type": "var", "name": "_"}, ".diff"]
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  , "may_fail": ["lint"]
                  , "fail_message":
                    { "type": "join"
                    , "$1":
                      [ "Target file "
                      , {"type": "var", "name": "_"}
                      , " not formatted correctly."
                      ]
                    }
                  }
                }
              }
            }
          }
        ]
      , [ "diff"
        , { "type": "ACTION"
          , "inputs": {"type": "var", "name": "diffs"}
          , "outs": ["targets.diff"]
          , "cmd":
            [ "sh"
            , "-c"
            , { "type": "join"
              , "separator": " "
              , "$1":
                [ "cat"
                , { "type": "join_cmd"
                  , "$1":
                    {"type": "keys", "$1": {"type": "var", "name": "diffs"}}
                  }
                , "> targets.diff"
                ]
              }
            ]
          }
        ]
      ]
    , "body": {"type": "RESULT", "artifacts": {"type": "var", "name": "diff"}}
    }
  }
}