squash
This commit is contained in:
parent
3d3b8da3af
commit
8885969e90
5 changed files with 371 additions and 0 deletions
18
.forgejo/workflows/main.yaml
Normal file
18
.forgejo/workflows/main.yaml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
on: [push]
|
||||||
|
jobs:
|
||||||
|
job:
|
||||||
|
container:
|
||||||
|
image: ${{vars.DOCKER}}debian:bookworm
|
||||||
|
steps:
|
||||||
|
- name: spcd
|
||||||
|
env:
|
||||||
|
SPCD: ${{vars.SPCD}}
|
||||||
|
SPCD_SSH_HOSTS: ${{vars.SPCD_SSH_HOSTS}}
|
||||||
|
SPCD_SSH_KEY: ${{secrets.SPCD_SSH_KEY}}
|
||||||
|
SPCD_TXT_LOCALE: ${{vars.SPCD_TXT_LOCALE}}
|
||||||
|
run: ${{vars.SPCD}}
|
||||||
|
|
||||||
|
- run: spcd-check-project
|
||||||
|
- run: spcd-build-project
|
||||||
|
- run: spcd-browse-workspace
|
||||||
|
- run: spcd-synchronize
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
/out
|
41
build.py
Executable file
41
build.py
Executable file
|
@ -0,0 +1,41 @@
|
||||||
|
#! /usr/bin/env python3
|
||||||
|
"""Build web."""
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
from rwx.fs import make_directory, read_file_text, write
|
||||||
|
from rwx.ps import run
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
root = Path(__file__).parent
|
||||||
|
out = root / "out" / "web"
|
||||||
|
gv = root / "index.gv"
|
||||||
|
svg = out / "index.svg"
|
||||||
|
make_directory(out)
|
||||||
|
run("dot", str(gv), "-Tsvg", "-o", str(svg))
|
||||||
|
text = read_file_text(svg)
|
||||||
|
write(
|
||||||
|
out / "index.css",
|
||||||
|
"""\
|
||||||
|
html {
|
||||||
|
background-color: #202020;
|
||||||
|
}
|
||||||
|
""",
|
||||||
|
)
|
||||||
|
write(
|
||||||
|
out / "index.html",
|
||||||
|
f"""\
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html><head>
|
||||||
|
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<link rel="stylesheet" href="index.css">
|
||||||
|
<title>todo.rwx.work</title>
|
||||||
|
|
||||||
|
</head><body>
|
||||||
|
|
||||||
|
{text}
|
||||||
|
|
||||||
|
</body></html>
|
||||||
|
""",
|
||||||
|
)
|
262
index.gv
Normal file
262
index.gv
Normal file
|
@ -0,0 +1,262 @@
|
||||||
|
# ╭───────╮
|
||||||
|
# │ Graph │
|
||||||
|
# ╰───────╯
|
||||||
|
digraph "index" {
|
||||||
|
bgcolor="transparent"
|
||||||
|
color="#C0C000"
|
||||||
|
fontcolor="#FF8000"
|
||||||
|
fontname="DejaVu Sans"
|
||||||
|
penwidth="2"
|
||||||
|
rankdir="RL"
|
||||||
|
|
||||||
|
# ╭───────┬──────╮
|
||||||
|
# │ Graph │ Edge │
|
||||||
|
# ╰───────┴──────╯
|
||||||
|
edge [
|
||||||
|
fontcolor="#FF4040"
|
||||||
|
fontname="DejaVu Sans"
|
||||||
|
style="filled"
|
||||||
|
]
|
||||||
|
|
||||||
|
# ╭───────┬──────╮
|
||||||
|
# │ Graph │ Edge │
|
||||||
|
# ╰───────┴──────╯
|
||||||
|
node [
|
||||||
|
color="#C0C0C0"
|
||||||
|
fontcolor="#FFFFFF"
|
||||||
|
fontname="DejaVu Sans"
|
||||||
|
penwidth="2"
|
||||||
|
shape="record"
|
||||||
|
style="filled"
|
||||||
|
]
|
||||||
|
|
||||||
|
{ rank="max"
|
||||||
|
"" [style="invis"]
|
||||||
|
}
|
||||||
|
|
||||||
|
edge [color="#008000"]
|
||||||
|
node [fillcolor="#408040"]
|
||||||
|
|
||||||
|
# ╭────────╮
|
||||||
|
# │ DevOps │
|
||||||
|
# ╰────────╯
|
||||||
|
|
||||||
|
subgraph "cluster/devops" {
|
||||||
|
label="DevOps"
|
||||||
|
|
||||||
|
"devops/dev/plan" -> "devops/ops/release" [style="invis"]
|
||||||
|
"devops/dev/test" -> "devops/ops/monitor" [style="invis"]
|
||||||
|
|
||||||
|
# ╭────────┬─────╮
|
||||||
|
# │ DevOps │ Dev │
|
||||||
|
# ╰────────┴─────╯
|
||||||
|
|
||||||
|
subgraph "cluster/devops/dev" {
|
||||||
|
label="Dev"
|
||||||
|
|
||||||
|
"devops/dev/plan" [label="Plan"]
|
||||||
|
"devops/dev/code" [label="Code"]
|
||||||
|
"devops/dev/build" [label="Build"]
|
||||||
|
"devops/dev/test" [label="Test"]
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
"devops/dev/plan" -> "devops/dev/code" -> "devops/dev/build" -> "devops/dev/test" -> "devops/dev/plan"
|
||||||
|
|
||||||
|
# ╭────────┬─────╮
|
||||||
|
# │ DevOps │ Ops │
|
||||||
|
# ╰────────┴─────╯
|
||||||
|
|
||||||
|
subgraph "cluster/devops/ops" {
|
||||||
|
label="Ops"
|
||||||
|
|
||||||
|
"devops/ops/release" [label="Release"]
|
||||||
|
"devops/ops/deploy" [label="Deploy"]
|
||||||
|
"devops/ops/operate" [label="Operate"]
|
||||||
|
"devops/ops/monitor" [label="Monitor"]
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
"devops/ops/release" -> "devops/ops/deploy" -> "devops/ops/operate" -> "devops/ops/monitor" -> "devops/ops/deploy"
|
||||||
|
|
||||||
|
# ╭────────╮
|
||||||
|
# │ DevOps │
|
||||||
|
# ╰────────╯
|
||||||
|
|
||||||
|
"devops/dev/test" -> "devops/ops/release"
|
||||||
|
"devops/ops/monitor" -> "devops/dev/plan"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
edge [color="#FF0000"]
|
||||||
|
node [fillcolor="#303030"]
|
||||||
|
|
||||||
|
# ╭─────╮
|
||||||
|
# │ DNS │
|
||||||
|
# ╰─────╯
|
||||||
|
|
||||||
|
subgraph "cluster/dns" {
|
||||||
|
label="Domains"
|
||||||
|
|
||||||
|
# ╭─────┬─────╮
|
||||||
|
# │ DNS │ RWX │
|
||||||
|
# ╰─────┴─────╯
|
||||||
|
|
||||||
|
subgraph "cluster/dns/rwx" {
|
||||||
|
label="rwx.work"
|
||||||
|
URL="https://rwx.work"
|
||||||
|
|
||||||
|
"dns/rwx/blog" [
|
||||||
|
fontcolor="#8080FF"
|
||||||
|
label="Blog"
|
||||||
|
URL="https://blog.rwx.work"
|
||||||
|
]
|
||||||
|
|
||||||
|
"dns/rwx/forge" [
|
||||||
|
fontcolor="#8080FF"
|
||||||
|
label="Forge"
|
||||||
|
URL="https://forge.rwx.work"
|
||||||
|
]
|
||||||
|
|
||||||
|
"dns/rwx/ilos" [
|
||||||
|
fontcolor="#8080FF"
|
||||||
|
label="ILOS:\nIncremental Live\nOperating System"
|
||||||
|
URL="https://ilos.rwx.work"
|
||||||
|
]
|
||||||
|
|
||||||
|
subgraph "cluster/dns/rwx/lsgm" {
|
||||||
|
label="LSGM:\nLive Scan Grub Menu"
|
||||||
|
URL="https://lsgm.rwx.work"
|
||||||
|
|
||||||
|
"dns/rwx/lsgm/python" [label="Python"]
|
||||||
|
"dns/rwx/lsgm/shell" [label="Shell"]
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
"dns/rwx/ofsp" [
|
||||||
|
fontcolor="#8080FF"
|
||||||
|
label="OFSP:\nOperating File\nSystem Profile"
|
||||||
|
URL="https://ofsp.rwx.work"
|
||||||
|
]
|
||||||
|
|
||||||
|
"dns/rwx/prj" [
|
||||||
|
fontcolor="#8080FF"
|
||||||
|
label="PRJ:\nPRJ"
|
||||||
|
URL="https://prj.rwx.work"
|
||||||
|
]
|
||||||
|
|
||||||
|
"dns/rwx/rtfd" [
|
||||||
|
fontcolor="#8080FF"
|
||||||
|
label="RTFD:\nRead The\nFancy Docs"
|
||||||
|
URL="https://rtfd.rwx.work"
|
||||||
|
]
|
||||||
|
|
||||||
|
subgraph "cluster/dns/rwx/rwx" {
|
||||||
|
label="RWX:\nRead Write eXecute"
|
||||||
|
URL="https://rwx.rwx.work"
|
||||||
|
|
||||||
|
"dns/rwx/rwx/python" [label="Python"]
|
||||||
|
"dns/rwx/rwx/shell" [label="Shell"]
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
"dns/rwx/spcd" [
|
||||||
|
fontcolor="#8080FF"
|
||||||
|
label="SPCD:\nShell to Python\nContinuous Deployment"
|
||||||
|
URL="https://spcd.rwx.work"
|
||||||
|
]
|
||||||
|
|
||||||
|
"dns/rwx/srmp" [
|
||||||
|
fontcolor="#8080FF"
|
||||||
|
label="SRMP:\nSoftware Repositories\nMirror Profile"
|
||||||
|
URL="https://srmp.rwx.work"
|
||||||
|
]
|
||||||
|
|
||||||
|
"dns/rwx/todo" [
|
||||||
|
fontcolor="#8080FF"
|
||||||
|
label="TODO:\nTO\nDO"
|
||||||
|
URL="https://todo.rwx.work"
|
||||||
|
]
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# ╭─────┬─────┬───────╮
|
||||||
|
# │ DNS │ RWX │ Forge │
|
||||||
|
# ╰─────┴─────┴───────╯
|
||||||
|
|
||||||
|
"dns/rwx/forge/marc" [
|
||||||
|
fontcolor="#8080FF"
|
||||||
|
label="Marc"
|
||||||
|
URL="https://forge.rwx.work/marc.beninca"
|
||||||
|
]
|
||||||
|
"dns/rwx/forge/marc" -> "dns/rwx/forge"
|
||||||
|
|
||||||
|
# ╭─────┬─────┬──────╮
|
||||||
|
# │ DNS │ RWX │ OFSP │
|
||||||
|
# ╰─────┴─────┴──────╯
|
||||||
|
|
||||||
|
{
|
||||||
|
"dns/rwx/ofsp/python" [label="Python"]
|
||||||
|
"dns/rwx/ofsp/shell" [label="Shell"]
|
||||||
|
} -> "dns/rwx/ofsp"
|
||||||
|
|
||||||
|
# ╭─────┬─────┬──────╮
|
||||||
|
# │ DNS │ RWX │ RTFD │
|
||||||
|
# ╰─────┴─────┴──────╯
|
||||||
|
|
||||||
|
{
|
||||||
|
"dns/rwx/rtfd/forgejo" [label="Forgejo"]
|
||||||
|
} -> "dns/rwx/rtfd"
|
||||||
|
|
||||||
|
# ╭─────┬─────┬─────┬────────╮
|
||||||
|
# │ DNS │ RWX │ RWX │ Python │
|
||||||
|
# ╰─────┴─────┴─────┴────────╯
|
||||||
|
{
|
||||||
|
"dns/rwx/rwx/python/codium" [label="Codium"]
|
||||||
|
"dns/rwx/rwx/python/ffmpeg" [label="FFMPEG"]
|
||||||
|
"dns/rwx/rwx/python/freetube" [label="FreeTube"]
|
||||||
|
"dns/rwx/rwx/python/gource" [label="Gource"]
|
||||||
|
"dns/rwx/rwx/python/logo" [label="Logo"]
|
||||||
|
"dns/rwx/rwx/python/venvs" [label="Build VEnvs"]
|
||||||
|
} -> "dns/rwx/rwx/python"
|
||||||
|
# ╭─────┬─────┬─────┬───────╮
|
||||||
|
# │ DNS │ RWX │ RWX │ Shell │
|
||||||
|
# ╰─────┴─────┴─────┴───────╯
|
||||||
|
{
|
||||||
|
"dns/rwx/rwx/shell/cs" [label="CryptSetup"]
|
||||||
|
"dns/rwx/rwx/shell/ffmpeg" [label="FFMPEG"]
|
||||||
|
"dns/rwx/rwx/shell/git" [label="Git"]
|
||||||
|
"dns/rwx/rwx/shell/venv" [label="Use VEnv"]
|
||||||
|
} -> "dns/rwx/rwx/shell"
|
||||||
|
|
||||||
|
# ╭─────┬─────┬──────╮
|
||||||
|
# │ DNS │ RWX │ SRMP │
|
||||||
|
# ╰─────┴─────┴──────╯
|
||||||
|
{
|
||||||
|
"dns/rwx/srmp/alma" [label="Alma"]
|
||||||
|
"dns/rwx/srmp/debian" [label="Debian"]
|
||||||
|
"dns/rwx/srmp/docker" [label="Docker"]
|
||||||
|
"dns/rwx/srmp/msys" [label="MSys"]
|
||||||
|
"dns/rwx/srmp/pypi" [label="PyPI"]
|
||||||
|
"dns/rwx/srmp/python" [label="Python"]
|
||||||
|
} -> "dns/rwx/srmp"
|
||||||
|
|
||||||
|
# ╭─────┬─────┬──────┬────────╮
|
||||||
|
# │ DNS │ RWX │ SRMP │ Debian │
|
||||||
|
# ╰─────┴─────┴──────┴────────╯
|
||||||
|
{
|
||||||
|
"dns/rwx/srmp/debian/codium" [label="Codium"]
|
||||||
|
"dns/rwx/srmp/debian/incus" [label="Incus"]
|
||||||
|
} -> "dns/rwx/srmp/debian"
|
||||||
|
|
||||||
|
# ╭─────┬─────┬──────╮
|
||||||
|
# │ DNS │ RWX │ TODO │
|
||||||
|
# ╰─────┴─────┴──────╯
|
||||||
|
{
|
||||||
|
"dns/rwx/todo/name" [label="Name"]
|
||||||
|
"dns/rwx/todo/subdomain" [label="Subdomain"]
|
||||||
|
} -> "dns/rwx/todo"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
49
readme.md
Normal file
49
readme.md
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
# Track Ongoing DevOps
|
||||||
|
|
||||||
|
A graph to track things to do.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Why
|
||||||
|
|
||||||
|
Dependencies between tasks of projects.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## How
|
||||||
|
|
||||||
|
A tree to identify leafs.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## What
|
||||||
|
|
||||||
|
Generate:
|
||||||
|
|
||||||
|
* [X] SVG with GraphViz
|
||||||
|
* [X] HTML including SVG
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Authors
|
||||||
|
|
||||||
|
* [Marc Beninca](https://marc.beninca.link)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Where
|
||||||
|
|
||||||
|
### Chat
|
||||||
|
|
||||||
|
* [Discord](https://discord.com/channels/983145051985154108/1315476519325274112)
|
||||||
|
* [IRC](ircs://irc.libera.chat/#todo)
|
||||||
|
|
||||||
|
### Forge
|
||||||
|
|
||||||
|
* [Repository](https://forge.rwx.work/rwx.work/todo)
|
||||||
|
* [RSS](https://forge.rwx.work/rwx.work/todo.rss)
|
||||||
|
* [Workflows](https://forge.rwx.work/rwx.work/todo/actions)
|
||||||
|
|
||||||
|
### Deployment
|
||||||
|
|
||||||
|
* [Site](https://todo.rwx.work)
|
Loading…
Reference in a new issue