Skip to content

Instantly share code, notes, and snippets.

View dannysauer's full-sized avatar

Danny Sauer dannysauer

View GitHub Profile
@dannysauer
dannysauer / install process
Created December 28, 2019 20:13
Zoneminder on Ubuntu 19.10
# configure PHP Timezone
sed -ne "s|\\(date.timezone =\\).*|\\1 $(< /etc/timezone )|p" /etc/php/7.3/apache2/php.ini
@dannysauer
dannysauer / perms.py
Last active February 5, 2020 00:05
Fix perms after installing package `foo` on SUSE / OpenSUSE via YaST
#!/usr/bin/env python
#
# Reset perms on a file after installing an RPM
#
import os
import json
import logging
from pwd import getpwnam
from grp import getgrnam
# from stat import *
@dannysauer
dannysauer / corefiles.pl
Last active April 18, 2020 18:02
perl script to drop into /etc/cron.hourly (or whatever) to clean up core files
#!/usr/bin/perl
# drop into /etc/cron.hourly (or whatever) to clean up core files
use warnings;
use strict;
use File::Find;
use File::LibMagic;
use Number::Bytes::Human;
sub wanted;
@dannysauer
dannysauer / readme.md
Created July 30, 2020 02:27
Script to sync fork's head branch with upstream

When I fork a repo, I checkout out my fork as origin and add a remote for the upstream repo as upstream. I hate having a fork where the default (usually called master) branch is way out of date, though. So this gets run from a scheduler to walk through checked out repos under a couple of directories in $HOME/dev, figure out the default branch, and sync that with the same-name branch in my fork.

The main interesting thing it does is to use a worktree. So it doesn't need to check out the whole repo again, but also doesn't disturb my main working repository. It also uses a unique temporary directory and a branch with the same name to do the sync, as I couldn't get it to work properly without creating a branch. I could swear I had made that work before (completely avoiding a branch name), but I can't for the life of me remember how. :D The tempname should be unique enough.

# /etc/systemd/system/importscannerdisk.service
[Unit]
Description=Import images from scanner SSD card
Requires=media-sauer-DOCSCAN.mount
After=media-sauer-DOCSCAN.mount
[Service]
ExecStart=/bin/true
[Install]
@dannysauer
dannysauer / notes.md
Created December 28, 2020 23:53
windows Linux setup
@dannysauer
dannysauer / keybase.md
Created February 16, 2021 22:03
keybase.md

Keybase proof

I hereby claim:

  • I am dannysauer on github.
  • I am dannysauer (https://keybase.io/dannysauer) on keybase.
  • I have a public key ASB_nYLw_XvDJ7TQ9OQQDjxS5QMqfCd_UL8z_jbXKWpFwAo

To claim this, I am signing this object:

@dannysauer
dannysauer / secretbench.sh
Last active March 1, 2021 18:36
K8S secret storage "benchmark"
#!/bin/bash
set -o errexit
output_every=100
separator='###'
secret_template='---
apiVersion: v1
kind: Secret
metadata:
name: secret$I
@dannysauer
dannysauer / secretbench.py
Last active March 2, 2021 05:04
secretbench
#!/usr/bin/env python3
import random
from base64 import b64encode
from kubernetes import client, config
from string import ascii_letters
from timeit import timeit
config.load_kube_config()
v1 = client.CoreV1Api()
@dannysauer
dannysauer / gitconfig.ini
Created March 10, 2021 17:06
git tag promotion aliases
✔ /tmp/testrepo [main L|✔]
10:04 $ sed -n '/alias/,$p' .git/config
[alias]
show-tag-date = tag --list --format "%(taggerdate:unix)"
flux-latest-stage-tag = describe --abbrev=0 --tags --match 'stage/*' main
flux-latest-prod-tag = describe --abbrev=0 --tags --match 'prod/*' main
flux-state = show --oneline --no-patch main stage prod
# git flux-rollback [stage|prod]
flux-rollback = "!git branch -f $1 $( git describe --abbrev=0 --tags --match="$1/*" ${1}^ ) && git tag -m \"rollback $1\" ${1}/$(date +'%F-%H-%M-%S')/rollback $1 #"
flux-stage = !git tag -m 'promote to stage' stage/$(date +'%F-%H-%M-%S') refs/heads/main && git branch -f stage $( git flux-latest-stage-tag )