Skip to content

Instantly share code, notes, and snippets.

@dansimau
dansimau / bar.go
Last active December 2, 2015 13:40
package foo
type Interface interface {
foo()
}
@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 / foo.go
Created April 11, 2016 14:31
mockery generation test
package foo
type FooInterface interface {
FooFunc()
}
@dansimau
dansimau / go-get-version.sh
Last active March 14, 2025 08:27
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 / 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 / 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 / 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 / go-test-pretty.sh
Created April 10, 2017 07:49
Run `go test`, only displaying error output, plus print counts of all tests passed/failed/etc.
#!/bin/bash
#
# Runs `go test -v`, parses the output and only displays errors. Also displays
# a summary of tests passed/failed/skipped/etc.
#
set -o pipefail
declare buffer=
declare test_error=false
@dansimau
dansimau / google-maps-takeout-to-kml.py
Created October 18, 2018 08:10
Convert starred places from Google Maps to a KML document (via Google Takeout).
"""
Takes a list of JSON files from Google Takeout's "Maps (Your Places)" and
converts them into KML documents.
"""
import json
import os
import simplekml
import sys
import unicodedata
import xml.sax.saxutils

Keybase proof

I hereby claim:

  • I am dansimau on github.
  • I am dansimau (https://keybase.io/dansimau) on keybase.
  • I have a public key ASBxOKX07kpA124KgQBfA2hD23-v7xTfi0EdIv45ePiv8wo

To claim this, I am signing this object: