Skip to content

Instantly share code, notes, and snippets.

@dansimau
dansimau / RunParallel.go
Created November 20, 2016 04:11
RunParallel is a drop-in replacement for testify/suite.Run that runs all tests in parallel.
// RunParallel is a drop-in replacement for testify/suite.Run that runs
// all tests in parallel.
//
// It uses reflection to create a new instance of the suite for each
// test
func RunParallel(t *testing.T, userSuite suite.TestingSuite) {
if _, ok := userSuite.(suite.SetupAllSuite); ok {
t.Log("Warning: SetupSuite exists but not being run in parallel mode.")
}
if _, ok := userSuite.(suite.TearDownAllSuite); ok {
@dansimau
dansimau / supervise.sh
Created November 14, 2016 20:29
process supervisor in bash
#!/bin/bash
#
# Spawn a process and restart it if it exits.
#
declare -i exit_code
declare -i pid
_cleanup() {
echo "[$(date)]: sending TERM to pid $pid"
kill -TERM $pid
@dansimau
dansimau / go.sh
Last active November 30, 2017 17:02
Bash functions for navigating Go workspaces ("Go-go!")
#
# Change to the directory of the specified Go package name.
#
gg() {
paths=($(g "$@"))
path_index=0
if [ ${#paths[@]} -gt 1 ]; then
c=1
@dansimau
dansimau / go-get-version.sh
Last active November 14, 2016 17:54
Like `go get`, but specify a commit ref in the package spec
#!/bin/bash
#
# Same as `go get` but you can specify a git commit ref.
#
set -e
#
# Resolve the path to the Go workspace from GOPATH.
#
_go_workspace() {
@dansimau
dansimau / foo.go
Created April 11, 2016 14:31
mockery generation test
package foo
type FooInterface interface {
FooFunc()
}
@dansimau
dansimau / LICENSE
Last active March 11, 2016 13:25 — forked from jamesarosen/git-merge-button.md
GitHub's Merge Button™ from the command line
Copyright (c) 2016 Daniel Simmons
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
@dansimau
dansimau / bar.go
Last active December 2, 2015 13:40
package foo
type Interface interface {
foo()
}
@dansimau
dansimau / revert-lights-out.py
Created January 3, 2015 12:27
Undo a Mac theme stuck in dark mode due to https://github.com/samturner/lights-out
from Foundation import CFPreferencesSetValue
from Foundation import CFNotificationCenterPostNotification
from Foundation import CFNotificationCenterGetDistributedCenter
from Foundation import kCFPreferencesAnyApplication
from Foundation import kCFPreferencesCurrentUser
from Foundation import kCFPreferencesCurrentHost
# Remove offending preference
CFPreferencesSetValue('AppleInterfaceStyle', None, kCFPreferencesAnyApplication,
kCFPreferencesCurrentUser, kCFPreferencesCurrentHost)
@dansimau
dansimau / timeout-server.py
Created March 26, 2014 08:49
HTTP server that accepts connections and then hangs. Used to simulate and test slow API connections.
#!/usr/bin/python
import sys
import time
from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
class RequestHandler(BaseHTTPRequestHandler):
def do_GET(s):
while True:
time.sleep(1000)
@dansimau
dansimau / emoify.html
Created March 5, 2014 10:33
Instantly add emoji to any web app.
<script src="https://raw.github.com/hassankhan/emojify.js/master/emojify.min.js"></script>
<script>
(function() {
// Config
emojify.setConfig({
img_dir : '/emoji',
ignored_tags : {
'SCRIPT' : 1,
'TEXTAREA': 1,
'A' : 1,