Add docker and CI stuff, minor updates
This commit is contained in:
parent
0f497ee7c2
commit
958818cbb2
12 changed files with 69 additions and 27 deletions
14
.drone.yml
Normal file
14
.drone.yml
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
kind: pipeline
|
||||||
|
name: default
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: build and publish
|
||||||
|
image: plugins/docker
|
||||||
|
pull: always
|
||||||
|
settings:
|
||||||
|
repo: askiiart/feed-the-void
|
||||||
|
tags: latest
|
||||||
|
username:
|
||||||
|
from_secret: docker_username
|
||||||
|
password:
|
||||||
|
from_secret: docker_password
|
|
@ -1,2 +1,3 @@
|
||||||
FROM python:slim-bookworm
|
FROM python:slim-bookworm
|
||||||
RUN apt update && apt install -y pandoc
|
RUN apt update && apt install -y pandoc
|
||||||
|
CMD ["/data/run.sh"]
|
22
README.md
22
README.md
|
@ -1,31 +1,25 @@
|
||||||
# F E E D T H E V O I D
|
# F E E D T H E V O I D
|
||||||
<!-- Note that there's a zero-width space between the spaces so that all 3 render -->
|
<!-- Note that there's a zero-width space between the spaces so that all 3 render -->
|
||||||
|
|
||||||
![Useful Linux Tips: Run dd if=/dev/zero of=/dev/null to feed nothing to the void](/feed-the-void.png)
|
![Useful Linux Tips: Run dd if=/dev/zero of=/dev/null to feed nothing to the void](/site-files/feed-the-void.png)
|
||||||
|
<!-- Source of meme is unknown -->
|
||||||
|
|
||||||
**Witness the void consume zeroes for all eternity**
|
<p style="font-size: 36px;"><b>Witness the void consume zeroes for all eternity</b></p>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
This puts the output of `dd` into a file, which is then read and made into a webpage every second. It's just a bodged-together mess, but it works*
|
This puts the output of `dd` into a file, which is then read and made into a webpage every second. It's just a [bodged](https://www.youtube.com/watch?v=lIFE7h3m40U)-together mess and it's super CPU-heavy, but it works*
|
||||||
|
|
||||||
\* Disclaimer: No idea if this works, I'm from the past where the program wasn't done yet.
|
\* Disclaimer: No idea if this works, I'm from the past where the program wasn't done yet.
|
||||||
|
|
||||||
## Docker
|
## Docker
|
||||||
|
|
||||||
|
1. Clone the repo - `git clone https://git.askiiart.net/askiiart/feed-the-void.git && cd feed-the-void`
|
||||||
|
|
||||||
`docker run`:
|
`docker run`:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
docker run -v .:/data registry.askiiart.net/askiiart/feed-the-void
|
docker run -it --rm --restart unless-stopped -v .:/data registry.askiiart.net/askiiart/feed-the-void
|
||||||
```
|
```
|
||||||
|
|
||||||
`docker-compose.yml`:
|
`docker-compose.yml`: See [docker-compose.yml](docker-compose.yml)
|
||||||
|
|
||||||
```yml
|
|
||||||
version: "3.7"
|
|
||||||
services:
|
|
||||||
feed-the-void:
|
|
||||||
image: registry.askiiart.net/askiiart/feed-the-void
|
|
||||||
volumes:
|
|
||||||
- .:/data
|
|
||||||
```
|
|
||||||
|
|
6
dd-progress-to-file.py
Normal file → Executable file
6
dd-progress-to-file.py
Normal file → Executable file
|
@ -6,13 +6,17 @@ from os import remove
|
||||||
shell = Popen(['dd', 'if=/dev/zero', 'of=/dev/null', 'status=progress'],
|
shell = Popen(['dd', 'if=/dev/zero', 'of=/dev/null', 'status=progress'],
|
||||||
stdout=PIPE, stderr=STDOUT, universal_newlines=True, bufsize=1)
|
stdout=PIPE, stderr=STDOUT, universal_newlines=True, bufsize=1)
|
||||||
|
|
||||||
|
try:
|
||||||
remove('output')
|
remove('output')
|
||||||
|
except FileNotFoundError:
|
||||||
|
pass
|
||||||
|
|
||||||
try:
|
try:
|
||||||
for line in iter(shell.stdout.readline, b''):
|
for line in iter(shell.stdout.readline, b''):
|
||||||
f = open('output', 'w')
|
f = open('output', 'w')
|
||||||
if (line.strip() != ''): # Ignore empty lines (always 1 at the start)
|
if (line.strip() != ''): # Ignore empty lines (always 1 at the start)
|
||||||
line = line.rstrip()
|
line = line.rstrip()
|
||||||
print(line)
|
#print(line)
|
||||||
f.write(line)
|
f.write(line)
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
|
|
15
docker-compose.yml
Normal file
15
docker-compose.yml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
version: "3.7"
|
||||||
|
services:
|
||||||
|
feed-the-void:
|
||||||
|
image: registry.askiiart.net/askiiart/feed-the-void
|
||||||
|
volumes:
|
||||||
|
- .:/data
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
nginx:
|
||||||
|
image: nginx:alpine-slim
|
||||||
|
volumes:
|
||||||
|
- ./site-files:/usr/share/nginx/html
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- 8080:80
|
4
run.sh
Executable file
4
run.sh
Executable file
|
@ -0,0 +1,4 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
|
||||||
|
$dir/dd-progress-to-file.py &
|
||||||
|
$dir/site-files/make-page.sh
|
|
@ -10,3 +10,5 @@ output here
|
||||||
```
|
```
|
||||||
|
|
||||||
![Useful Linux Tips: Run dd if=/dev/zero of=/dev/null to feed nothing to the void](feed-the-void.png)
|
![Useful Linux Tips: Run dd if=/dev/zero of=/dev/null to feed nothing to the void](feed-the-void.png)
|
||||||
|
|
||||||
|
<p style="font-size: 36px; text-align: center;"><b>Witness the void consume zeroes for all eternity</b></p>
|
||||||
|
|
|
@ -1,11 +1,16 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
while true; do
|
|
||||||
dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
|
dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
|
||||||
pandoc -f markdown-smart --data-dir . --template ${dir}/template.html -t html -o $dir/tmp.html $dir/index.md --metadata title="$(grep -m 1 -oP '(?<=^# ).*' $dir/index.md | cat)"
|
while true; do
|
||||||
sed -i "s/output here/$(sed 's/\//\\\//g' $dir/../output)/g" $dir/tmp.html
|
#pandoc -f markdown-smart --data-dir . --template ${dir}/template.html -t html -o $dir/tmp.html $dir/index.md --metadata title="$(grep -m 1 -oP '(?<=^# ).*' $dir/index.md | cat)"
|
||||||
sed "s/sourceCode /language-/g" $dir/tmp.html > $dir/index.html
|
#chmod 777 $dir/../output
|
||||||
rm -f $dir/tmp.html
|
#sed -i "s/output here/$(sed 's/\//\\\//g' $dir/../output)/g" $dir/tmp.html
|
||||||
|
#sed "s/sourceCode /language-/g" $dir/tmp.html > $dir/index.html
|
||||||
|
#rm -f $dir/tmp.html
|
||||||
|
#sleep 1
|
||||||
|
# Can just run these 3 lines if index.html already exists
|
||||||
|
chmod 777 $dir/../output
|
||||||
|
sed -i "s/output here/$(sed 's/\//\\\//g' $dir/../output)/g" $dir/index.html
|
||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
1
site-files/prism.min.css
vendored
Normal file
1
site-files/prism.min.css
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
code[class*=language-],pre[class*=language-]{color:#f8f8f2;background:0 0;text-shadow:0 1px rgba(0,0,0,.3);font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre) >code[class*=language-],pre[class*=language-]{background:#121212}:not(pre) >code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#8292a2}.token.punctuation{color:#f8f8f2}.token.namespace{opacity:.7}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#f92672}.token.boolean,.token.number{color:#ae81ff}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#a6e22e}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.class-name,.token.function{color:#e6db74}.token.keyword{color:#66d9ef}.token.important,.token.regex{color:#fd971f}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}pre[class*=language-].line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right}div.code-toolbar{position:relative}div.code-toolbar>.toolbar{position:absolute;z-index:10;top:.3em;right:.2em;transition:opacity .3s ease-in-out;opacity:0}div.code-toolbar:hover>.toolbar{opacity:1}div.code-toolbar:focus-within>.toolbar{opacity:1}div.code-toolbar>.toolbar>.toolbar-item{display:inline-block}div.code-toolbar>.toolbar>.toolbar-item>a{cursor:pointer}div.code-toolbar>.toolbar>.toolbar-item>button{background:0 0;border:0;color:inherit;font:inherit;line-height:normal;overflow:visible;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}div.code-toolbar>.toolbar>.toolbar-item>a,div.code-toolbar>.toolbar>.toolbar-item>button,div.code-toolbar>.toolbar>.toolbar-item>span{color:#bbb;font-size:.8em;padding:0 .5em;background:#f5f2f0;background:rgba(224,224,224,.2);box-shadow:0 2px 0 0 rgba(0,0,0,.2);border-radius:.5em}div.code-toolbar>.toolbar>.toolbar-item>a:focus,div.code-toolbar>.toolbar>.toolbar-item>a:hover,div.code-toolbar>.toolbar>.toolbar-item>button:focus,div.code-toolbar>.toolbar>.toolbar-item>button:hover,div.code-toolbar>.toolbar>.toolbar-item>span:focus,div.code-toolbar>.toolbar>.toolbar-item>span:hover{color:inherit;text-decoration:none}
|
|
@ -2,9 +2,10 @@ body {
|
||||||
color: #dadada;
|
color: #dadada;
|
||||||
background: #202020;
|
background: #202020;
|
||||||
margin: 1em auto;
|
margin: 1em auto;
|
||||||
max-width: 90vw;
|
max-width: 1000px;
|
||||||
padding: 0 .62em;
|
padding: 0 .62em;
|
||||||
font: 1.0em/1.35 sans-serif
|
font: 1.0em/1.35 sans-serif;
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
a:link,
|
a:link,
|
||||||
|
|
1
site-files/style.min.css
vendored
Normal file
1
site-files/style.min.css
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
body{color:#dadada;background:#202020;margin:1em auto;max-width:1000px;padding:0 .62em;font:1.0/1.35 sans-serif;text-align:center}a:link,a:visited{color:#80c47b}a:hover,a:visited:hover{color:#6bb794}h1,h2,h3{line-height:1.2}code{background:#121212}pre{background:#121212}wrap{word-wrap:break-word}@media(max-device-width:1200px){h1{line-height:1.2;font-size:40px}h2{line-height:1.2;font-size:30px}body{font-size:20px}pre,code{font-size:16px}}@media print{body{max-width:none}}footer{text-align:center}
|
|
@ -5,8 +5,8 @@
|
||||||
<link rel="icon" href="feed-the-void.png" type="image/icon">
|
<link rel="icon" href="feed-the-void.png" type="image/icon">
|
||||||
<meta http-equiv="refresh" content="5" />
|
<meta http-equiv="refresh" content="5" />
|
||||||
<title>$title$</title>
|
<title>$title$</title>
|
||||||
<link href="prism.css" rel="stylesheet" />
|
<link href="prism.min.css" rel="stylesheet" />
|
||||||
<link href="style.css" rel="stylesheet" />
|
<link href="style.min.css" rel="stylesheet" />
|
||||||
</head>
|
</head>
|
||||||
<body class="line-numbers">
|
<body class="line-numbers">
|
||||||
$body$
|
$body$
|
||||||
|
|
Loading…
Reference in a new issue