Table of contents

Managing hugo with git and ssh on android

So I wanted to be able to maintain my hugo site on my phone, just in case. It works but it was kinda annoying to setup.

You’ll need to install the apps Termux and Acode from Fdroid.

Then start Termux and execute termux-setup-storage and allow access to shared folders.

Next, install git: pkg install git.

Use your favourite file manager and create a working directory somewhere. I use Downloads/git. Then symlink to this dir in Termux:

ln -s /storage/emulated/0/git .

Now, generate a new SSH key pair:

ssh-keygen -t ed25519

Install the public key to your repository. I am using Gitolite, so I added it to the keydir in the gitolite-admin dir.

That’s basically it. Clone your repo, open the folder with Acode, edit or add files and commit and push them to your git repo.

screenshot

screenshot

I’ll not describe, how to setup gitolite and the hugo repo, maybe in a follow-up post.

↷ 17.04.2025 🠶 #hugo #git #android

Relaunch

I got finally rid of jekyll. It was a good system and served me well over the past years. But it has its quirks, has too many dependencies for my liking and it requires me to have a ruby interpreter to be installed in the jail.

Hugo on the other hand is written in Golang, it’s a self contained binary. Easy to use and to deploy. Although I had some trouble with templating, I got it to work with the help of the nice people on their forums. And it’s really fast.

Only the tags page is still missing, I’ll build it later.

While I was at it, I repaired the blog posts, mosts of them contained images with invalid uri’s.

So, I’m happy as it is now.

↷ 15.04.2025 🠶 #hugo

Was übrig bleibt

“Wirklich bedauerlich” blaukräuselte die alte Botschafterin während sie die in der aufgehenden Sonne knisternden Reste Berlins betrachtete, schließlich mit ihrer fünftrechten Tentakel das Bugfenster schloss und Schub gab, um den herzerreissend schönen Planeten das letzte Mal zu verlassen. Das Vaterschiff meldete sich: “Und, wie ist Deine Prognose, Rimaka?”.

Sie drehte sich zum Sensor und musterte zurück: “Sie werden aussterben. Dreihundertneunzig thermonukleare Explosionen haben wir gezählt. Es gab mehrere Tsunamikaskaden. Über neunzig Prozent der Lebewesen an Land wurden vernichtet. Wir haben hier nichts mehr zu tun.”. Helle grüngelbe Wellen signalisierten: “Aber es besteht noch Hoffnung, hat es geheißen?”.

“Ja, in den Meeren leben mehrere Arten Kopffüsser. Nicht sonderlich intelligent, aber mit Potential. Das wird aber noch viele Millionen hiesige Jahre dauern, bis sich ein erneuter Besuch lohnen wird.”, antwortete sie sichtlich niedergeschlagen. Über zehn Jahre aufwändige Forschungsarbeit hatte sie für die Vorbereitung des Erstkontakts bislang investiert - jedoch war alles umsonst gewesen, der Krieg der Landläufer war die furchtbarste Dummheit, der beizuwohnen sie gezwungen gewesen war. “Aber die Inhalte des Datennetzes der Wesen konntest Du noch sichern?”, erkundigte sich das Vaterschiff mit lilabraunen Senkrechtmustern, die sie wohl trösten sollten. Rimaka wedelte ungehalten mit der zweitlinken Tentakel: “Da war nicht viel zu holen, das Netz war erst 50 hiesige Jahre alt. Ich habe den Kristall nicht einmal zu 5 Prozent gefüllt.”. Damit beendete sie die Verbindung.

Die Botschafterin blickte auf die immer kleiner werdende blaue Kugel zurück und schüttelte sich enttäuscht. Wieder eine Spezies mit hohem Potential, einer wunderbaren Kunst, erstaunlicher Kreativität und einem herrlichen Humor - verloren. Sie hatten schon so viele solcher Ereignisse beobachten müssen. Und doch war es jedesmal deprimierend.

↷ 02.04.2025 🠶 #kurzgeschichte

better git history using fzf

Looking at past versions of a whole repository or just one file is a very common git task for me. So I build an git alias around it, which over time evolved to this script:

#!/bin/sh

file="$1"

commit=$(git log --decorate --no-merges $file | \
    fzf --preview "git show --color=always --format=fuller -U0 --stat -w {1} $file" \
        --border-label="$(git remote --verbose|grep push) - $(git status | head -1)" \
        --layout=reverse-list --border=bottom \
        --height 100% --with-nth=2.. | cut -f1 -d' ')

if test -z "$commit"; then
    exit
fi

if test -n "$file"; then
    git show "$commit:$file"
else
    git checkout "$commit"
fi

I have added it to my ~/.gitconfig like this:

[alias] 
  history = "!githistory"

Now, if I execute git history while in a repository, I get a nice fzf selection of all commits with a preview of the commits. I can also add a filename as parameter, e.g. git history src/grid.go and only browse the commits regarding that file.

When I hit <ENTER> then the commit will be checked out or - if I am looking at one specific file - git show of that file in the selected revision will be run.

Take a look.

↷ 21.10.2024 🠶 #unix

kleingebäck - ein kleinanzeigen.de Backup Tool

Wenn Ihr kleinanzeigen nutzt, kennt Ihr das Problem: Ihr habt eine Reihe von Anzeigen, einige davon vielleicht mit dem Handy erstellt, verliert den Überblick und schon sind 2 Monate vergangen, einige Sachen haben sich nicht verkauft und die Anzeigen wurden gelöscht.

Um sie wieder einzustellen, muss man die Bilder zusammenkramen, sich überlegen, welchen Text man nochmal geschrieben hatte etc pp.

Das ist nun vorbei: mit kleingebäck kann man seine Anzeigen auf Platte sichern.

Das Tool ist zwar ein Comandozeilen-Werkzeug und so vielleicht nicht jedermans Sache, aber: es hat keinerlei Abhängigkeiten und ist tatsächlich recht einfach zu verwenden:

Zunächst muss man seine “User-ID” bei Kleinanzeigen.de ermitteln. Dazu am besten eine der eigenen Anzeigen aufrufen. Auf der rechten Seite gibt es einen Link über den man die Liste der Anzeigen für den Benutzer sehen kann:

Dort geht man auf die Liste (im Screenshot rot markiert) und landet auf der Listingseite. In der URL-Zeile des Browsers findet man nun die User-ID:

Nun erzeugt man eine neue Datei in seinem Home-Verzeichnis namens .kleingebaeck.hcl und trägt dort die User-ID sowie das Verzeichnis in dem die Azzeigen gespeichert werden sollen ein:

user = XXXXX
outdir = "/home/tom/Data/Anzeigen"

(XXXX durch Deine User-ID ersetzen!)

Nun einfach das Tool aufrufen: ./kleingebaeck

Sofern keine Fehler gemeldet werden, sieht es hernach in dem Verzeichnis so aus:

Und wenn man in eines der Verzeichnisse geht:

Das Tool kleingebäck kann man bei Github herunterladen.

Es gibt ausserdem eine Dokumentation auf englisch.

Falls Ihr Probleme mit dem Tool habt oder Anregungen loswerden wollt, eröffnet gerne bei Github einen Issue, gerne auch auf deutsch.

↷ 15.12.2023 🠶 #software