Skip to content

Instantly share code, notes, and snippets.

View OndraZizka's full-sized avatar
⛴️
Shippin'

Ondrej Zizka OndraZizka

⛴️
Shippin'
View GitHub Profile
@OndraZizka
OndraZizka / fetchAllGitRepos.sh
Last active April 18, 2023 19:07
Fetch all Git repos in subdirectories
#!/bin/bash
## Run this in a directory to fetch all Git repos within it.
find -name .git | sed 's#.git##' | sort | xargs -t -n1 -I % git -C % fetch --all
## CRON job: You can also put this into `crontab -e` in order to keep all repos up-to-date automatically:
# # m h DoM mth DoW command
# */5 * * * * find /home/ondra/work -name .git | sed 's#.git##' | sort | xargs -t -n1 -I % git -C % fetch --all --tags --force
@OndraZizka
OndraZizka / enumCliOptionParsing.kt
Created November 27, 2022 00:23
Kotlin: Parsing CLI options easily using ENUMs
private inline fun <reified T : OptionEnum> tryParseEnumOption(enumArgumentDefault: T, arg: String): T? {
val optionIntro = "--${enumArgumentDefault.optionName}"
if (!arg.startsWith(optionIntro))
return null
if (arg == optionIntro || arg == optionIntro + "=" + enumArgumentDefault.optionValue)
return enumArgumentDefault
val valueStr = arg.substringAfter(optionIntro).removePrefix("=")
@OndraZizka
OndraZizka / Slf4jLazy.kt
Last active December 1, 2025 03:29
Kotlin SLF4J log message lazy evaluation based on log level
package org.jbake.util
/*
Lazy evaluation of the messages sent to Slf4j.
Usage:
log.trace { "State dump: " + expensiveLongSerialisation(state) }
See also https://jira.qos.ch/browse/SLF4J-371
*/
import org.slf4j.Logger
@OndraZizka
OndraZizka / installMaven38.sh
Last active June 4, 2025 10:00
Linux: install Maven 3.8.6
#!/bin/bash
## Because Ubuntu 22.10 still has Maven 3.6.3, this fixes it:
wget -q https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz -P /tmp
mkdir ~/sw/
tar xf /tmp/apache-maven-*.tar.gz -C ~/sw/
rm /tmp/apache-maven-*.tar.gz
mv /sw/apache-maven-* -C ~/sw/maven
echo 'MAVEN_HOME=~/sw/maven' >> ~/.bashrc
@OndraZizka
OndraZizka / ubuntu-openjdk-maven-docker.Dockerfile
Created October 27, 2022 21:37
Dockerfile: Ubuntu 22.04 + Docker + OpenJDK 18 + Maven 3.8
FROM ubuntu:22.04
ENV qqy="-qq -y -o=Dpkg::Use-Pty=0"
RUN export DEBIAN_FRONTEND=noninteractive \
&& apt-get $qqy update > /dev/null \
&& apt-get $qqy install ca-certificates curl wget gnupg lsb-release > /dev/null \
&& mkdir -p /etc/apt/keyrings \
&& curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg \
@OndraZizka
OndraZizka / apple-sceen-brightness-howto.sh
Created October 4, 2022 11:54
Apple screen brightness control script for Linux (Ubuntu)
##
## This is not a script, rather a sequence of commands to do.
## I have tested it and it works.
## Use at your own responsibility.
## Compiled from https://www.dionysopoulos.me/apple-display-brightness-controls-in-ubuntu-desktop.html
## See https://github.com/yhaenggi/acdcontrol.git for more info.
##
sudo apt-install g++ make
git clone https://github.com/yhaenggi/acdcontrol.git
@OndraZizka
OndraZizka / GoogleSheets-getCellLink.gs
Created August 27, 2022 09:22
Google Sheets custom function: Get a link from a given cell.
@OndraZizka
OndraZizka / OptionsParsingUtils.kt
Last active November 22, 2022 14:11
Kotlin: Parsing of enum-based application linux-like arguments (--name[=value])
object OptionsParsingUtils {
private inline fun <reified T : OptionEnum> tryParseEnumOption(enumArgumentDefault: T, arg: String): T? {
val optionIntro = "--${enumArgumentDefault.optionName}"
if (!arg.startsWith(optionIntro))
return null
if (arg.endsWith(optionIntro) || arg.endsWith("=${enumArgumentDefault.optionValue}"))
return enumArgumentDefault
@OndraZizka
OndraZizka / FlexibleTemporalInputParser.kt
Last active October 30, 2021 09:05
Parse various date-time formats: Year only to full LocalDateTime, or relative from now (to the past). Kotlin.
package ch.zizka.time
import java.time.Duration
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
import java.time.format.DateTimeParseException
import java.time.temporal.ChronoField.DAY_OF_MONTH
import java.time.temporal.ChronoField.HOUR_OF_DAY
import java.time.temporal.ChronoField.MINUTE_OF_HOUR
import java.time.temporal.ChronoField.MONTH_OF_YEAR
@OndraZizka
OndraZizka / git-moveBranch.sh
Last active September 8, 2023 10:41
Git: Rebase a (sub)branch from one base to another, leaving the other base's commits.
#!/bin/bash
## Places a branch to a new base.
## Useful when splitting a long branch to multiple pull requests.
##
## ---+--------master
## \
## --- A ---- B
##
## git-moveBranch.sh B from A to master