Skip to content

Commit abb9581

Browse files
committed
Add rps.built.ttl to build script
1 parent fcff425 commit abb9581

File tree

4 files changed

+3096
-17
lines changed

4 files changed

+3096
-17
lines changed

.github/workflows/build.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,13 @@ jobs:
3131
- name: Commit and push if build output changed
3232
run: |
3333
set -e
34-
git add build/def.built.ttl
34+
git add build/def.built.ttl build/rps.built.ttl
3535
if git diff --staged --quiet; then
36-
echo "No changes in build/def.built.ttl. Skipping commit."
36+
echo "No changes in build/def.built.ttl or build/rps.built.ttl. Skipping commit."
3737
exit 0
3838
fi
39-
echo "Changes detected in build/def.built.ttl. Committing..."
39+
echo "Changes detected in build outputs. Committing..."
4040
git -c user.name="github-actions[bot]" \
4141
-c user.email="41898282+github-actions[bot]@users.noreply.github.com" \
42-
commit -m "Update def.built.ttl [skip ci]"
42+
commit -m "Update built.ttl files [skip ci]"
4343
git push

build.js

Lines changed: 39 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,26 @@
11
import path from "path"
22
import { fileURLToPath } from "url"
3-
import { promises as fsPromise, writeFileSync } from "fs"
3+
import { promises, writeFileSync } from "fs"
44
import { newStore, addTurtleToStore, storeToTurtle, sparqlInsertDelete } from "@foerderfunke/sem-ops-utils"
55

6+
const ROOT = path.join(path.dirname(fileURLToPath(import.meta.url)))
7+
await promises.mkdir(`${ROOT}/build`, { recursive: true })
8+
9+
// ----------- def.built.ttl -----------
10+
611
let header = ["# This file is a generated enriched merge of the following source files:"]
7-
const dir = path.join(path.dirname(fileURLToPath(import.meta.url)))
8-
const dfDir = path.join(dir, "datafields")
12+
const dfDir = path.join(ROOT, "datafields")
913

10-
const turtleFiles = [
11-
`${dir}/definitions.ttl`,
12-
`${dir}/materialization.ttl`,
13-
...(await fsPromise.readdir(dfDir)).filter(f => f.endsWith(".ttl")).map(f => path.join(dfDir, f))
14+
const defTurtleFiles = [
15+
`${ROOT}/definitions.ttl`,
16+
`${ROOT}/materialization.ttl`,
17+
...(await promises.readdir(dfDir)).filter(f => f.endsWith(".ttl")).map(f => path.join(dfDir, f))
1418
]
1519

1620
let defStore = newStore()
17-
for (let file of turtleFiles) {
18-
header.push("# - " + file.substring(dir.length + 1))
19-
addTurtleToStore(defStore, await fsPromise.readFile(file, "utf8"))
21+
for (let file of defTurtleFiles) {
22+
header.push("# - " + file.substring(ROOT.length + 1))
23+
addTurtleToStore(defStore, await promises.readFile(file, "utf8"))
2024
}
2125

2226
// ensure language tag @de-x-es: if not present, copy from @de
@@ -39,7 +43,30 @@ const query = `
3943
await sparqlInsertDelete(query, defStore)
4044

4145
let turtle = header.join("\n") + "\n\n" + await storeToTurtle(defStore)
42-
await fsPromise.mkdir(`${dir}/build`, { recursive: true })
43-
let target = `${dir}/build/def.built.ttl`
46+
let target = `${ROOT}/build/def.built.ttl`
47+
writeFileSync(target, turtle, "utf8")
48+
console.log(`Wrote to ${target}`)
49+
50+
// ----------- rps.built.ttl -----------
51+
52+
header = ["# This file is a generated merge of the following source files:"]
53+
const shaclDirs = [
54+
`${ROOT}/shacl`,
55+
`${ROOT}/shacl/beta`,
56+
`${ROOT}/shacl/bielefeld`
57+
]
58+
let shaclFiles = []
59+
for (let shaclDir of shaclDirs) {
60+
shaclFiles = shaclFiles.concat((await promises.readdir(shaclDir)).map(file => `${shaclDir}/${file}`).filter(file => file.endsWith(".ttl")))
61+
}
62+
63+
let rpsStore = newStore()
64+
for (let file of shaclFiles) {
65+
header.push("# - " + file.substring(ROOT.length + 1))
66+
addTurtleToStore(rpsStore, await promises.readFile(file, "utf8"))
67+
}
68+
69+
turtle = header.join("\n") + "\n\n" + await storeToTurtle(rpsStore)
70+
target = `${ROOT}/build/rps.built.ttl`
4471
writeFileSync(target, turtle, "utf8")
4572
console.log(`Wrote to ${target}`)

0 commit comments

Comments
 (0)