From 958818cbb238c002741a37eb26f79981486a02f8 Mon Sep 17 00:00:00 2001 From: askiiart Date: Tue, 21 Nov 2023 11:53:00 -0600 Subject: [PATCH] Add docker and CI stuff, minor updates --- .drone.yml | 14 ++++++++++++++ Dockerfile | 3 ++- README.md | 22 ++++++++-------------- dd-progress-to-file.py | 8 ++++++-- docker-compose.yml | 15 +++++++++++++++ run.sh | 4 ++++ site-files/index.md | 2 ++ site-files/make-page.sh | 17 +++++++++++------ site-files/prism.min.css | 1 + site-files/style.css | 5 +++-- site-files/style.min.css | 1 + site-files/template.html | 4 ++-- 12 files changed, 69 insertions(+), 27 deletions(-) create mode 100644 .drone.yml mode change 100644 => 100755 dd-progress-to-file.py create mode 100644 docker-compose.yml create mode 100755 run.sh create mode 100644 site-files/prism.min.css create mode 100644 site-files/style.min.css diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..67936fd --- /dev/null +++ b/.drone.yml @@ -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 \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index b38b6fa..80c39d3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,2 +1,3 @@ FROM python:slim-bookworm -RUN apt update && apt install -y pandoc \ No newline at end of file +RUN apt update && apt install -y pandoc +CMD ["/data/run.sh"] \ No newline at end of file diff --git a/README.md b/README.md index 777dbc9..00459e5 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,25 @@ # F E E D ​ ​ T H E ​ ​ V O I D -![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) + -**Witness the void consume zeroes for all eternity** +

Witness the void consume zeroes for all eternity

--- -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. ## Docker +1. Clone the repo - `git clone https://git.askiiart.net/askiiart/feed-the-void.git && cd feed-the-void` + `docker run`: ```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`: - -```yml -version: "3.7" -services: - feed-the-void: - image: registry.askiiart.net/askiiart/feed-the-void - volumes: - - .:/data -``` \ No newline at end of file +`docker-compose.yml`: See [docker-compose.yml](docker-compose.yml) diff --git a/dd-progress-to-file.py b/dd-progress-to-file.py old mode 100644 new mode 100755 index 3c2f4a2..96d6bfe --- a/dd-progress-to-file.py +++ b/dd-progress-to-file.py @@ -6,13 +6,17 @@ from os import remove shell = Popen(['dd', 'if=/dev/zero', 'of=/dev/null', 'status=progress'], stdout=PIPE, stderr=STDOUT, universal_newlines=True, bufsize=1) -remove('output') +try: + remove('output') +except FileNotFoundError: + pass + try: for line in iter(shell.stdout.readline, b''): f = open('output', 'w') if (line.strip() != ''): # Ignore empty lines (always 1 at the start) line = line.rstrip() - print(line) + #print(line) f.write(line) f.close() diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..0363341 --- /dev/null +++ b/docker-compose.yml @@ -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 \ No newline at end of file diff --git a/run.sh b/run.sh new file mode 100755 index 0000000..3fcdbb9 --- /dev/null +++ b/run.sh @@ -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 diff --git a/site-files/index.md b/site-files/index.md index 73b7be7..0f74d5c 100644 --- a/site-files/index.md +++ b/site-files/index.md @@ -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) + +

Witness the void consume zeroes for all eternity

diff --git a/site-files/make-page.sh b/site-files/make-page.sh index 70ff520..245ebe0 100755 --- a/site-files/make-page.sh +++ b/site-files/make-page.sh @@ -1,11 +1,16 @@ #!/usr/bin/env bash set -e +dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) while true; do - 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)" - 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 + #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)" + #chmod 777 $dir/../output + #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 -done \ No newline at end of file +done diff --git a/site-files/prism.min.css b/site-files/prism.min.css new file mode 100644 index 0000000..756345e --- /dev/null +++ b/site-files/prism.min.css @@ -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} \ No newline at end of file diff --git a/site-files/style.css b/site-files/style.css index c96c492..1e2e124 100644 --- a/site-files/style.css +++ b/site-files/style.css @@ -2,9 +2,10 @@ body { color: #dadada; background: #202020; margin: 1em auto; - max-width: 90vw; + max-width: 1000px; padding: 0 .62em; - font: 1.0em/1.35 sans-serif + font: 1.0em/1.35 sans-serif; + text-align: center; } a:link, diff --git a/site-files/style.min.css b/site-files/style.min.css new file mode 100644 index 0000000..30514e7 --- /dev/null +++ b/site-files/style.min.css @@ -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} \ No newline at end of file diff --git a/site-files/template.html b/site-files/template.html index 1e5a086..944de15 100644 --- a/site-files/template.html +++ b/site-files/template.html @@ -5,8 +5,8 @@ $title$ - - + + $body$