Skip to content

Instantly share code, notes, and snippets.

@ramcq
ramcq / blocksync.py
Last active July 6, 2021 15:03 — forked from rcoup/blocksync.py
#!/usr/bin/env python
"""
Synchronise block devices over the network
Copyright 2006-2008 Justin Azoff <[email protected]>
Copyright 2011 Robert Coup <[email protected]>
Copyright 2012 Holger Ernst <[email protected]>
Copyright 2014 Robert McQueen <[email protected]>
License: GPL
@ramcq
ramcq / evohome.py
Created November 8, 2015 16:38
collectd python plugin for evohome
# collectd python plugin for evohome
# Copyright 2015 Robert McQueen <[email protected]>
# GNU General Public License v2 or later, no warranty etc
#
# uses https://github.com/watchforstock/evohome-client to read temperatures and setpoints
# could be more smart in terms of keeping credentials and refreshing them when they time out rather than logging in every time
# supports multiple evohome devices
# ignores hot water
# patches welcome :)
@ramcq
ramcq / gist:6919a17a59d4b4be915d
Created March 23, 2016 13:57
extra plugin dir for GStreamer
Index: gstreamer-1.6.1/common/m4/gst-plugindir.m4
===================================================================
--- gstreamer-1.6.1.orig/common/m4/gst-plugindir.m4
+++ gstreamer-1.6.1/common/m4/gst-plugindir.m4
@@ -15,3 +15,20 @@ AC_DEFUN([AG_GST_SET_PLUGINDIR],
plugindir="\$(libdir)/gstreamer-$GST_API_VERSION"
AC_SUBST(plugindir)
])
+
+dnl AC_DEFINE EXTRA_PLUGINDIR to the full location where additional plug-ins
@ramcq
ramcq / live_boot.c
Last active September 1, 2016 14:01
static gboolean
check_for_live_boot ()
{
GError *error = NULL;
gchar *cmdline = NULL;
gboolean live_boot = FALSE;
if (g_file_get_contents ("/proc/cmdline", &cmdline, NULL, &error))
{
g_printerr ("unable to read /proc/cmdline: %s\n", error->message);
#!/usr/bin/python2
# Script inspired from https://gist.github.com/obscurerichard/3740206
import os
import sys
import subprocess
import argparse
import textwrap
@ramcq
ramcq / packet-configure-network.py
Created August 21, 2018 09:51
Reads Packet.net metadata JSON and writes out RedHat style /etc/sysconfig/network-scripts config
#!/usr/bin/env python3
import argparse
import glob
import ipaddress
import json
import os
import requests
PACKET_BOND_OPTIONS = 'miimon=100 downdelay=200 updelay=200 xmit_hash_policy=1 lacp_rate=1'
@ramcq
ramcq / appstream-validator.py
Created September 12, 2018 14:28
Endless script to check appstream files for common appdata invalidity
#!/usr/bin/env python3
# This script parses all the local appstream data
# to check for apps that are missing important metadata
# that is required for proper display in gnome-software.
#
# It is recommended to run `flatpak update --apstream`
# prior to this script.
@ramcq
ramcq / repo.conf
Created December 19, 2018 21:19
flathub nginx conf.d fragment for ostree repo TTLs
location ~ ^/repo/summary(\.sig)?$ {
root /srv/repo;
expires 1h;
add_header Cache-Control "public";
add_header Surrogate-Control "stale-if-error=86400";
}
location /repo/refs {
root /srv/repo;
expires 1m;
add_header Cache-Control "public";
@ramcq
ramcq / edu.mit.scratch.ScratchDesktop.json
Created April 10, 2019 00:52
Flatpak manifest for Scratch Desktop 3.0
{
"app-id": "edu.mit.scratch.ScratchDesktop",
"runtime": "org.freedesktop.Platform",
"runtime-version": "18.08",
"base": "org.electronjs.Electron2.BaseApp",
"base-version": "18.08",
"sdk": "org.freedesktop.Sdk",
"command": "scratch-desktop",
"separate-locales": false,
"finish-args": [
@ramcq
ramcq / seccomp-with-request_key.json
Created June 27, 2019 13:00
add request_key syscall to default docker seccomp policy
{
"defaultAction": "SCMP_ACT_ERRNO",
"archMap": [
{
"architecture": "SCMP_ARCH_X86_64",
"subArchitectures": [
"SCMP_ARCH_X86",
"SCMP_ARCH_X32"
]
},