Skip to content

Instantly share code, notes, and snippets.

View Informatic's full-sized avatar
🤔
excuse me, is this facebook

Piotr Dobrowolski Informatic

🤔
excuse me, is this facebook
View GitHub Profile
@Informatic
Informatic / gziplogging.py
Last active October 23, 2020 10:24
python logging rotating gzipping handler
#
# A quick tip on how to set up rotating logging handler with
# automatic gzipping of rotated files. Tested on python 3.7
#
#
# Testing tip:
# python gziplogging.py
# touch example.log --date='2005/01/01'
# python gziplogging.py
# ls -lah *.log*
@Informatic
Informatic / tagify-cookbook
Created August 5, 2019 13:18
Quickly add git version tags for specified chef cookbook (could easily be adapted to any other piece of infrastructure, eg. npm package.json file, as long as one is able to extract unique version identifier on specified git ref)
#!/usr/bin/env bash
# Creates local version tags based on cookbook metadata.rb change history
# Usage: bash tagify-cookbook [cookbook_name]
cookbook=${1:-some_cookbook}
git log --pretty=format:"%h" cookbooks/$cookbook/metadata.rb | while read ref; do
tag="$cookbook-$(git show $ref:cookbooks/$cookbook/metadata.rb | grep "^version '" | sed -E "s/.* '(.*)'/\1/g" )"
echo "ref: $ref -> $tag";
{ stdenv, fetchurl, patchelf, makeWrapper, xorg, gcc, gcc-unwrapped, freetype, fontconfig, liberation_ttf }:
stdenv.mkDerivation rec {
name = "IPMIView-${version}";
version = "2.16.0";
buildVersion = "190528";
src = fetchurl {
url = "https://www.supermicro.com/wftp/utility/IPMIView/Linux/IPMIView_${version}_build.${buildVersion}_bundleJRE_Linux_x64.tar.gz";
sha256 = "0pz4q8vsnv6wqpiy6am333c2cgsdjmxc6w9vm4hi8qyaavfbq0w2";
@Informatic
Informatic / janus.py
Last active March 24, 2019 08:34
Minimal janus-gateway REST API python client
# Reference:
# https://janus.conf.meetecho.com/docs/rest.html
# https://janus.conf.meetecho.com/docs/streaming.html
import requests
import json
import pprint
import random
import string
@Informatic
Informatic / network.nix
Created January 20, 2019 21:32
NixOS OVH IP Failover virtual machine configuration
{
# [...]
# Assuming failover IP being 1.2.3.4 and host primary IP being 5.6.7.8
networking.interfaces.ens3.ipv4.addresses = [ {
address = "1.2.3.4";
prefixLength = 32;
} ];
networking.interfaces.ens3.ipv4.routes = [ {
address = "5.6.7.254";
@Informatic
Informatic / domain.xml
Last active April 7, 2024 23:20
How to use Windows 10 OEM license in libvirt VM (<smbios mode='host' /> does not work as Windows seems to verify UUID; apparmor/security configuration changes may be needed)
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
<!-- ... -->
<qemu:commandline>
<qemu:arg value='-acpitable'/>
<qemu:arg value='file=/some/path/slic.bin'/>
<qemu:arg value='-acpitable'/>
<qemu:arg value='file=/some/path/msdm.bin'/>
<qemu:arg value='-smbios'/>
<qemu:arg value='file=/some/path/smbios_type_0.bin'/>
<qemu:arg value='-smbios'/>
@Informatic
Informatic / stunnel-transparent.sh
Created July 22, 2018 10:20
stunnel transparent proxy (server) on localhost. use transparent=source; connect=127.1.1.1:... in stunnel configuration (mostly borrowed from sslh documentation)
#!/bin/bash
set -e
# Set route_localnet = 1 on all interfaces so that ssl can use "localhost" as
# destination
sysctl -w net.ipv4.conf.default.route_localnet=1
sysctl -w net.ipv4.conf.all.route_localnet=1
# DROP martian packets as they would have been if route_localnet was zero
@Informatic
Informatic / JanusStream.vue
Last active November 12, 2020 09:25
Quick and dirty Janus WebRTC Gateway Streaming plugin component for Vue.js based on https://github.com/TechTeamer/janus-api
<template>
<video controls></video>
</template>
<script>
/* Note: you may need to add `externals: { ws: "WebSocket"},` to Your webpack configuration for this to work properly */
import { Janus, StreamingJanusPlugin } from '@techteamer/janus-api'
export default {
props: ['config', 'stream'],
@Informatic
Informatic / README.md
Created February 24, 2018 12:21
Raspberry Pi xscreensaver DPMS fix

This script will watch for xscreensaver blanking event and disable actual HDMI output accordingly.

@Informatic
Informatic / bundle-conf
Created October 29, 2017 10:09
Simple OpenVPN+EasyRSA configuration bundler
#!/usr/bin/env bash
set -e
panic() { echo $* >&2; exit 1; }
HOST="$(hostname)"
CLIENT="$1"
[ -z "$CLIENT" ] && panic "usage: ./bundle-conf [CLIENT]"