-
Notifications
You must be signed in to change notification settings - Fork 2
/
genREADME.yaml
105 lines (90 loc) · 2.78 KB
/
genREADME.yaml
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
# author: Nuno Aguiar
ojob:
async : true
opacks :
- Badgen: 20230603
channels:
create:
- name: opacks
type: dummy
- name: outputs
type: simple
include:
- badgen.yaml
todo:
- Gather opack info trigger
- Generate version badge
- Get list of opacks
- Generate README.md
jobs:
# --------------------------------
- name : Generate version badge
type : subscribe
typeArgs:
chSubscribe: outputs
exec : |
if (args.op != "set" && args.op != "setall") return
if (args.op == "set") args.v = [ args.v ]
for(var ii in args.v) {
var pack = args.v[ii]
if (isDef(pack.name)) {
log(" generating badge '.github/badges/" + pack.name + ".svg'")
$job("Badgen generate file", {
label : pack.name,
labelColor: "grey3",
color : "blue",
status : String(pack.version),
icon : "openaf_grey.svg",
file : ".github/badges/" + pack.name + ".svg"
})
}
}
#####################################
- name : Gather opack info trigger
type : subscribe
typeArgs:
chSubscribe: opacks
exec : |
if (args.op != "set" && args.op != "setall") return;
if (args.op == "set") args.v = [ args.v ];
for(var ii in args.v) {
var fileInfo = args.v[ii];
var pack = {};
if (io.fileExists(fileInfo.canonicalPath + "/.package.yaml")) {
pack = io.readFileYAML(fileInfo.canonicalPath + "/.package.yaml");
} else {
// it's json?
if (io.fileExists(fileInfo.canonicalPath + "/.package.json")) {
pack = io.readFile(fileInfo.canonicalPath + "/.package.json");
} else {
logWarn("Ignoring " + fileInfo.filename + "...");
}
}
$ch("outputs").set({ name: pack.name }, pack);
}
##########################
- name: Get list of opacks
exec: |
$ch("opacks").setAll(["canonicalPath"],
$from(io.listFiles(".").files)
.equals("isDirectory", true)
.notEquals("filename", ".git")
.sort("filename")
.select()
);
$ch("opacks").waitForJobs()
$ch("outputs").waitForJobs()
# ------------------------
- name: Generate README.md
deps:
- Get list of opacks
exec: |
io.writeFileString("README.md", templify(`
# openaf-opacks
List of OpenAF opacks:
| Name | Description |
|--------|---------------|
{{#each opacks}}
{{#if name}}|**{{name}}**|<img src=".github/badges/{{name}}.svg"><br>{{description}}|{{/if}}
{{/each}}
`, { opacks: $from($ch("outputs").getAll()).sort("name").select() }));