Skip to content

Instantly share code, notes, and snippets.

@jerrykan
jerrykan / sqlite3.php
Created December 28, 2011 03:33
sqlite3 driver for roundcube password plugin
<?php
/**
* sqlite3 Password Driver
*
* Driver for passwords stored in sqlite3 database
*
* @version 0.8
* @author John Kristensen <john@jerrykan.com>
*
@jerrykan
jerrykan / bash.git
Created April 30, 2012 04:19
Determine user logged in as root and export git env variables
#
# Export some environment variables so git can better determine the real user
# making commits when 'su'ed as the root user.
#
### Git Settings
USERNAME=`who -m | cut -d ' ' -f 1`
# Set the git author name and email
GIT_AUTHOR_EMAIL=`who -m | awk -F ' ' '{print $1"@"$5}' | sed -e 's/[()]//g'`
@jerrykan
jerrykan / email_reminder.py
Created August 7, 2012 07:18
Script to send out emails about open issues in roundup
#!/usr/bin/python
#
# This script should be run from a cronjob.
#
import roundup.instance
from roundup import roundupdb
from roundup.mailer import Mailer
class ReminderEmails(object):
@jerrykan
jerrykan / create_issue.py
Created November 5, 2012 10:10
Example script to create a roundup issue
#!/usr/bin/env python
"""
This script will create a new issue with a file "attachment" in a demo roundup
instance. This should provide a basic example of how to programmatically create
an issue in your own tracker.
"""
import roundup.instance
from roundup.exceptions import Reject
from roundup.date import Date
@jerrykan
jerrykan / git_pep8_pre-commit_hook.py
Last active December 10, 2015 21:08
A very simplistic script to check for pep8 errors in the lines of a file that are to be committed. This is useful if you have files with lots of pep8 errors, but you only want to know about the errors in the lines you have altered.
#!/usr/bin/env python
"""
A very simplistic script to check for pep8 errors in the lines of a file that
are to be committed. This is useful if you have files with lots of pep8 errors,
but you only want to know about the errors in the lines you have altered.
"""
import sys
import subprocess
@jerrykan
jerrykan / dict_diff.py
Last active December 14, 2015 07:59
Given two dicts return another two dicts that contain only the differences between the original dicts
import unittest
def dict_diff(a, b):
if a == b:
return ({}, {})
diff = ({}, {})
keys = set(a.keys() + b.keys())
for k in keys:
@jerrykan
jerrykan / test_exception.py
Created March 11, 2013 03:07
Test exceptions are raised and the exception message is correct.
import unittest
def raise_exception(yup=True):
if yup:
raise ValueError('Yup, exception raised.')
class ExceptionMessageTestCase(unittest.TestCase):
def assertRaisesMessage(self, exception, msg, func, *args, **kwargs):
@jerrykan
jerrykan / liveserver.py
Created March 15, 2013 07:20
A basic wsgi http server to help with running selenium test cases
import multiprocessing
import socket
import time
import unittest
from wsgiref.simple_server import make_server, WSGIRequestHandler
class QuietHandler(WSGIRequestHandler):
def log_request(*args, **kwargs):
pass
#!/bin/bash
#
# Loosely based on the manual steps outlined at:
# https://kb.berkeley.edu/page.php?id=27401
# and:
# http://hodza.net/2011/06/15/howto-install-tsm-backup-client-in-debian-squeeze-ubuntu-64bit/
#
# This script assumes it is being run on a Debian host that has the alien
# package installed.
#
@jerrykan
jerrykan / git-remote-hg
Created September 23, 2013 03:19
A wrapper script to invoke git-remote-hg on Debian. Debian includes the Mercurial helper script in the git package but it is not placed in the $PATH by default and does not have execute permissions. This short script is a work-around for both of this issues.
#!/bin/sh
#
# Create this shell script in:
#
# /usr/local/bin/git-remote-hg
#
# Set the correct file permissions on the script:
#
# chmod 755 /usr/local/bin/git-remote-hg
#