Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View provegard's full-sized avatar
Test-driving things

Per Rovegård provegard

Test-driving things
View GitHub Profile
@provegard
provegard / et_patch.py
Created November 21, 2011 07:22
ElementTree parsing for non-prefixed attributes with default namespace
#!/usr/bin/python
from xml.etree import ElementTree as ET
from cStringIO import StringIO
def parse_attrns(file):
"""Parse file to ElementTree instance. Patch non-prefixed attributes
with the namespace of the element they belong to.
"""
events = ("start", )
@provegard
provegard / listifs.c
Created November 24, 2011 22:51
Tiny program for listing network interface names and indexes in Linux
/* Tiny program for listing network interface names and indexes in Linux.
*
* Compile with: gcc -std=c99 -o listifs listifs.c
*/
#include <stdio.h>
#include <stdlib.h>
#include <net/if.h>
int main(int argc, char *argv[])
@provegard
provegard / ssdp-test.py
Created December 5, 2011 21:52
Small SSDP server/client test in Python
#!/usr/bin/python
# Python program that can send out M-SEARCH messages using SSDP (in server
# mode), or listen for SSDP messages (in client mode).
import sys
from twisted.internet import reactor, task
from twisted.internet.protocol import DatagramProtocol
SSDP_ADDR = '239.255.255.250'
@provegard
provegard / avahi-test.py
Created December 5, 2011 22:07
Test program for using Avahi in Python
#!/usr/bin/python
# Test program for using Avahi in Python. Publishes a dummy service.
import sys
import avahi
import dbus
from twisted.internet import reactor
# Service details
@provegard
provegard / lsblkctrl.sh
Created December 8, 2011 20:27
Lists Linux block devices and for each one the controller it is connected to.
#!/bin/bash
# Lists Linux block devices and for each one the controller
# it is connected to.
set -o pipefail
for i in /sys/block/sd*; do
# Find the path that contains the PCI ID of the controller.
link=$(readlink $i)
@provegard
provegard / build_lambda.sh
Created December 15, 2011 09:58
Script that downloads and builds defender-prototype and lambda (Project Lambda).
#!/bin/bash
# Script that downloads and builds defender-prototype and lambda (Project Lambda).
set -e
set -u
function error_exit()
{
echo >&2 $@
@provegard
provegard / getnifs.py
Created December 29, 2011 23:26
Python script for listing network interfaces with name, index and addresses
#!/usr/bin/python
# Based on getifaddrs.py from pydlnadms [http://code.google.com/p/pydlnadms/].
# Only tested on Linux!
from socket import AF_INET, AF_INET6, inet_ntop
from ctypes import (
Structure, Union, POINTER,
pointer, get_errno, cast,
c_ushort, c_byte, c_void_p, c_char_p, c_uint, c_int, c_uint16, c_uint32
@provegard
provegard / rel_unpack.py
Created January 1, 2012 20:32
Script for unpacking the contents of a release directory
#!/usr/bin/python -W ignore::DeprecationWarning
"""rel_unpack.py - unpacks the contents of a release directory, optionally
checking SFV check sums prior to unpacking. The script only handles RAR
compressed content, and descends into any CD sub directories as well.
Usage: rel_unpack.py <release directory>
This script relies on the 'unrar' binary being installed. For SFV checking
to take place, the cfv Python module must be present.
@provegard
provegard / ghclone.js
Last active February 23, 2017 19:54
A Node.js script that clones all non-forked repos and all gists on GitHub for a user.
/*
* A Node.js script that clones all non-forked repos and all gists on GitHub
* for a user. If the repos/gists have been cloned already, the script pulls
* new commits from GitHub instead.
*
* Usage:
*
* node ghclone.js -u <user> -p <password> -d <destination dir>
*
* Tested with Node.js version 0.6.7.
@provegard
provegard / HowToUse_Dll.cpp
Last active December 21, 2015 15:28
MediaInfo buffer usage
/* Copyright (c) MediaArea.net SARL. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license that can
* be found in the License.html file in the root of the source tree.
*/
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Linux: g++ -o howtouse HowToUse_Dll.cpp -lmediainfo -lzen -ldl
// Windows: cl /Fehowtouse.exe HowToUse_Dll.cpp
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++