Skip to content

Instantly share code, notes, and snippets.

@sevenissimo
sevenissimo / inotifywait-events.sh
Created June 30, 2022 19:19
Linux Inotify events handling in Bash
#!/bin/bash
#set -x
dir="$(mktemp -d)"
mkfifo "${fifo:=$dir/FIFO}"
inotifywait -m -e create $dir 1>$fifo 2>/dev/null & jobs %%
for i in {1..10}; do
( sleep 2; touch "$dir/$i" ) &
@sevenissimo
sevenissimo / bash-args.sh
Created June 30, 2022 19:17
Positional arguments handling on Bash scripts
#!/usr/bin/env bash
__iterate_on_args() {
for a; do echo "arg: $a"; done
}
__iterate_on_glob() {
#shopt -o nullglob
for f in *."${1:-sh}"; do
echo "file: $f"
@sevenissimo
sevenissimo / read-overload-1.sh
Last active June 26, 2022 13:05
Bash mandatory and typed input by read overload
#!/bin/bash
function read {
declare -n var="${@: -1}"
case "$1" in
-Z) until [[ -n "$var" ]]; do
builtin read "${@:2}";
done ;;
-D) until [[ "$var" =~ ^[0-9]+$ ]]; do
builtin read "${@:2}";
@sevenissimo
sevenissimo / jdownloader.service
Last active December 20, 2022 10:57
Systemd unit to run latest JDownloader2 without any script. Also let JD2 auto update.
[Unit]
Description=JDownloader Headless
After=network.target
[Service]
Restart=on-failure
User=jdownloader
Group=jdownloader
LogsDirectory=jdownloader
StateDirectory=jdownloader