Skip to content

Instantly share code, notes, and snippets.

Avatar

Werner Robitza slhck

View GitHub Profile
@slhck
slhck / cleanup.py
Last active Jan 9, 2023
Docker Registry Cleanup
View cleanup.py
#!/usr/bin/env python3
#
# Cleanup Docker tags from GitLab registry
#
# Requirements:
#
# - skopeo
# - Python 3.9 or higher
# - Pip packages: `pip3 install loguru joblib packaging`
#
@slhck
slhck / Dockerfile-ffmpeg-xvfb
Created Nov 30, 2022
Test screen recording with ffmpeg
View Dockerfile-ffmpeg-xvfb
FROM alpine:latest
# install ffmpeg and xvfb, as well as mpv
RUN apk add --no-cache ffmpeg xvfb mpv bash \
&& rm -rf /var/cache/apk/*
ENTRYPOINT ["/bin/bash"]
@slhck
slhck / color_snippets.sh
Created Nov 10, 2022
Color snippets for Bash scripts
View color_snippets.sh
# ==============================================================================
# Color snippets
# Bashly, https://github.com/DannyBen/bashly
# Licensed under the MIT License (MIT)
#
# Copyright (c) Danny Ben Shitrit
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
@slhck
slhck / decode_nested_json.py
Created Oct 7, 2022
Decode a nested JSON file containing escaped JSON values
View decode_nested_json.py
#!/usr/bin/env python3
#
# Decode a nested JSON object containing escaped JSON strings as values
# Pass the JSON file as a command line argument, or use "-" to read from stdin.
import json
def decode_json_object(json_object):
"""Decode a JSON object containing escaped JSON strings as values"""
View Vagrant Debug Log
INFO global: Vagrant version: 2.3.0
INFO global: Ruby version: 2.7.6
INFO global: RubyGems version: 3.1.6
INFO global: VAGRANT_VMWARE_FUSION_APP="/Applications/VMware Fusion Tech Preview.app"
INFO global: VAGRANT_LOG="debug"
INFO global: VAGRANT_INSTALLER_ENV="1"
INFO global: VAGRANT_INSTALLER_EMBEDDED_DIR="/opt/vagrant/embedded"
INFO global: VAGRANT_INSTALLER_VERSION="2"
INFO global: VAGRANT_EXECUTABLE="/opt/vagrant/embedded/gems/2.3.0/gems/vagrant-2.3.0/bin/vagrant"
WARN global: resolv replacement has not been enabled!
View gist:b35e6ec9cc8fcb6eb05d1d819ac84732
GEM
remote: https://rubygems.org/
specs:
aasm (5.3.0)
concurrent-ruby (~> 1.0)
actioncable (6.1.6.1)
actionpack (= 6.1.6.1)
activesupport (= 6.1.6.1)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
@slhck
slhck / capture_x11_ffmpeg.sh
Last active Aug 3, 2022
capture_x11_ffmpeg.sh
View capture_x11_ffmpeg.sh
#!/usr/bin/env bash
#
# Record the screen via x11grab and embed a timecode.
#
# Author: Werner Robitza
#
# License: MIT
#
# Version: 1.2.0
#
@slhck
slhck / black_split.sh
Last active Aug 1, 2022 — forked from davidwebca/gist:e26186b8f4c6795b19c043fffb6f9861
Detect black scenes and split with ffmpeg remux
View black_split.sh
#!/usr/bin/env bash
# Splits video to separate scenes files when full black frames are found in the video
#
# Author: Werner Robitza
#
# Forked from: https://gist.github.com/davidwebca/e26186b8f4c6795b19c043fffb6f9861
# Inspired by https://gist.github.com/achesco/4dc2ebf13378a0a61fc26c7fe01f539e
# Who got inspired by https://stackoverflow.com/a/38205105
@slhck
slhck / crx_download.sh
Created Jul 21, 2022
Download CRX file from Chrome Web Store
View crx_download.sh
#!/usr/bin/env bash
#
# Download a Chrome extension from the webstore.
# Extract it to a specified path.
#
# Author: Werner Robitza
set -e
CHROME_VERSION="101.0.4951.57"
@slhck
slhck / csv_to_ndjson.py
Created Jun 22, 2022
Convert CSV to NDJSON (LDJSON)
View csv_to_ndjson.py
#!/usr/bin/env python3
#
# csv_to_ndjson.py
#
# Author: Werner Robitza
#
# Convert CSV files to .ndjson.
# This assumes the same keys being used in every line of the input file.
# It works on a line-by-line basis, so it should be fast and memory-efficient.