Skip to content

Instantly share code, notes, and snippets.

View akhy's full-sized avatar

Akhyar Amarullah akhy

View GitHub Profile
@akhy
akhy / mfatoken.applescript
Created October 16, 2023 01:59 — forked from akhoury6/mfatoken.applescript
Generate an MFA token with an OS X Keyboard Shortcut
-- Settings
set mfaSecret to "<token>"
-- Install oath-toolkit if not available
try
do shell script "which /usr/local/bin/oathtool"
on error
display dialog "This script needs to install oath-toolkit. Please ensure that brew is installed, then hit OK to continue."
do shell script "brew install oath-toolkit"
end try
@akhy
akhy / syncthing-automerge.py
Created August 5, 2023 07:02 — forked from solarkraft/syncthing-automerge.py
Monitors a Syncthing-synced directory and tries to merge conflicting files (based on https://www.rafa.ee/articles/resolve-syncthing-conflicts-using-three-way-merge/). Probably adaptable for other directory types, but only tested with Logseq (works for me™️).
import os
import time
import re
import subprocess
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
def get_relative_path(path):
return os.path.relpath(path)
@akhy
akhy / command_exists.go
Created July 14, 2023 15:58 — forked from miguelmota/command_exists.go
Golang check if command exists
package main
import (
"log"
"os/exec"
)
func main() {
path, err := exec.LookPath("ls")
if err != nil {
@akhy
akhy / sqlmap.go
Created June 12, 2023 02:41 — forked from heyimalex/sqlmap.go
Functions for querying directly into map[string]interface{}
// Package sqlmap provides functions for querying directly into
// map[string]interface{}.
//
// In developing really simple api endpoints, I found the boilerplate needed
// to take the results of a database query and output them as JSON to be
// really fucking annoying; make a custom struct, scan into that struct, if
// there are multiple rows do the whole rows.Next() song and dance, and if
// anything changes update the three spots each column of the result is now
// dependent on. Even when using libraries like sqlx, there's still a lot of
// extraneous code that needs to be written.
@akhy
akhy / send_metric_to_statsd.sh
Created June 14, 2021 19:40 — forked from nstielau/send_metric_to_statsd.sh
Send a metric to StatsD from bash
# Send a metric to statsd from bash
#
# Useful for:
# deploy scripts (http://codeascraft.etsy.com/2010/12/08/track-every-release/)
# init scripts
# sending metrics via crontab one-liners
# sprinkling in existing bash scripts.
#
# netcat options:
# -w timeout If a connection and stdin are idle for more than timeout seconds, then the connection is silently closed.
@akhy
akhy / webpacker_rails.md
Created August 23, 2020 19:59 — forked from maxivak/webpacker_rails.md
Webpack, Yarn, Npm in Rails
@akhy
akhy / runinenv.sh
Created October 24, 2019 06:00 — forked from parente/runinenv.sh
run a command in virtualenv, useful for supervisord
#!/bin/bash
VENV=$1
if [ -z $VENV ]; then
echo "usage: runinenv [virtualenv_path] CMDS"
exit 1
fi
. ${VENV}/bin/activate
shift 1
echo "Executing $@ in ${VENV}"
exec "$@"
@akhy
akhy / graceful.go
Created December 12, 2018 06:58 — forked from peterhellberg/graceful.go
*http.Server in Go 1.8 supports graceful shutdown. This is a small example.
package main
import (
"context"
"log"
"net/http"
"os"
"os/signal"
"time"
)
@akhy
akhy / about:config.md
Created January 13, 2018 05:33 — forked from haasn/about:config.md
Firefox bullshit removal via about:config

Firefox bullshit removal

Due to the incessant swarm of complete and utter nonsense that has been forcing its way into Firefox over time, I've decided to start collecting my personal list of “must-have” about:config tweaks required to turn Firefox into a functional brower.

NOTE: Unfortunately this is somewhat out of date. The comments link to some resources that may be more up-to-date. Patches welcome.

WebSockets

These can be used for nefarious purposes and to bypass access restrictions.

@akhy
akhy / Jenkins auto-shudown-slaves job
Created February 16, 2017 17:01 — forked from fotinakis/Jenkins auto-shudown-slaves job
Auto-managed Jenkins slaves on Google Compute Engine
#!/bin/bash
# Have to redirect stderr to stdout here because slave.py uses stderr for output.
~/bin/slave.py list 2>&1 >/dev/null | grep beaker-slave- | while read slave; do
echo
echo "Checking status of $slave..."
# First, check if we can SSH into the host. If we can, then check the process and maybe shut down.
# This makes sure that we don't consider an SSH failure to be reason to shut down the node.
if ssh $slave echo < /dev/null; then