-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathformat.dhall
92 lines (82 loc) · 2.41 KB
/
format.dhall
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
let SourceTime =
{ Type =
< HoursAgo : Integer
| DaysAgo : Integer
| AbsoluteTime : { date : Date, time : Time, timeZone : TimeZone }
>
, default = {=}
}
let SourceDate = { Type = < ModificationTime | AccessTime >, default = {=} }
let SourceTemporal =
{ Type = < SourceDate : SourceDate.Type | SourceTime : SourceTime.Type >
, default = {=}
}
let SortingOrder = { Type = < SortingAsc | SortingDesc >, default = {=} }
let GroupingBucketTemporal =
{ Type = < Daily | Weekly | Monthly >, default = {=} }
let Grouping =
{ Type =
< FileGroup
| GroupTemporally :
{ sourceTemporal : SourceTemporal.Type
, groupingBucketTemporal : GroupingBucketTemporal.Type
, groupSelectionTemporal :
< AfterTemporal :
{ index : Integer
, order : SortingOrder.Type
, sourceTemporal : SourceTemporal.Type
}
| BeforeTemporal :
{ index : Integer
, order : SortingOrder.Type
, sourceTemporal : SourceTemporal.Type
}
>
}
>
, default = {=}
}
let FilteringCondition =
{ Type =
< GtTemporalF : { _1 : SourceTemporal.Type, _2 : SourceTemporal.Type }
| LtTemporalF : { _1 : SourceTemporal.Type, _2 : SourceTemporal.Type }
>
, default = {=}
}
let Filtering =
{ Type =
< All
| Ands : List FilteringCondition.Type
| Ors : List FilteringCondition.Type
>
, default = {=}
}
let Action =
{ Type =
< Move : { inputPattern : Text, newName : Text }
| Copy : { inputPattern : Text, newName : Text }
| Remove : { inputPattern : Text }
>
, default = {=}
}
let Rule =
{ Type =
{ name : Text
, match : Text
, grouping : Grouping.Type
, filtering : Filtering.Type
, actions : List Action.Type
}
, default =
{ grouping = Grouping.Type.FileGroup, filtering = Filtering.Type.All }
}
in { Rule
, SourceTime
, SourceDate
, SourceTemporal
, SortingOrder
, GroupingBucketTemporal
, Grouping
, Filtering
, Action
}