Skip to content

Instantly share code, notes, and snippets.

View jpbochi's full-sized avatar
🦔

JP Bochi jpbochi

🦔
View GitHub Profile
@jpbochi
jpbochi / delete-baddie.sh
Created August 3, 2020 10:33
kubectl force delete
# Start a kubectl proxy
kubectl proxy
# Get a json with the resource you want to delete
kubectl get challenges.acme.cert-manager.io quickstart-example-tls-1016717128-3781756796-4176224615 -o json > bad.json
# Make a PUT call removing any finalizer
cat bad.json | jq '. | setpath(["metadata","finalizers"]; [])' | curl -kD- -H "Content-Type: application/json" -X PUT --data-binary @- "127.0.0.1:8001$(cat bad.json | jq -r '.metadata.selfLink')"
@jpbochi
jpbochi / .bash_ps1
Created August 6, 2019 10:33
bash PROMPT_COMMAND + PS1 for git status
#!/usr/bin/env bash
# copied from http://mediadoneright.com/content/ultimate-git-ps1-bash-prompt
# Customize BASH PS1 prompt to show current GIT repository and branch.
# by Mike Stewart - http://MediaDoneRight.com
# TODO: scope the following env vars to this file only. They can be seen with `declare -p`
# Reset
Color_Off="\[\033[0m\]" # Text Reset
@jpbochi
jpbochi / runcached.bash
Created August 2, 2019 17:15
Run speficied (presumably expensive) command with specified arguments and cache result. If cache is fresh enough, don't run command again but return cached output.
#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o noglob
set -o pipefail
#
# Purpose: run speficied command with specified arguments and cache result. If cache is fresh enough, don't run command again but return cached output.
# Also cache exit status and stderr.
# License: GPLv3
@jpbochi
jpbochi / pull-aws-creds.sh
Last active May 17, 2023 12:44
pull-aws-creds.sh
#!/usr/bin/env sh
set -eu
API_BASE="${API_BASE:-https://github.api.manage.rackspace.com}"
KEY_FILE=${KEY_FILE:-"$HOME/.ssh/id_rsa"}
fail() {
echo >&2 "This tool needs an SSH key to sign a request to $API_BASE."
echo >&2 "The key must be configured as a deploy key in your GitHub repository linked to an AWS account."
@jpbochi
jpbochi / decrypt.sh
Last active October 10, 2018 20:29
bash SSH encrypt/decrypt/sign
#!/usr/bin/env sh
set -eu
# some inspiration from https://raymii.org/s/tutorials/Sign_and_verify_text_files_to_public_keys_via_the_OpenSSL_Command_Line.html
MESSAGE=$1
ID_FILE=$(ssh -G git@github.com | grep identityfile | cut -d' ' -f2 | xargs -I % sh -c 'test -r % && echo % || true' | head)
echo >&2 '>>> decrypting with this identity file:' $ID_FILE
@jpbochi
jpbochi / init.lua
Created October 25, 2017 15:35
Hammerspoon config
hs.loadSpoon('ControlEscape'):start() -- Load Hammerspoon bits from https://github.com/jasonrudolph/ControlEscape.spoon
FRemap = require('foundation_remapping') -- https://github.com/hetima/hammerspoon-foundation_remapping
remapper = FRemap.new()
remapper:remap('§', '`')
remapper:register()
remapperDE = FRemap.new({vendorID=0x258a, productID=0x1006})
remapperDE:remap('lcmd', 'lalt')
@jpbochi
jpbochi / try-acquire-lock-s3.sh
Created July 25, 2017 12:56
bash script to lock/unlock resources by using an S3 bucket with file versioning
#!/usr/bin/env bash
set -eu
log () {
echo >&2 "[lock] $@"
}
putLock () {
aws s3api put-object --region $REGION --bucket $BUCKET --key $LOCK_KEY --output text --query 'VersionId'
}
#!/usr/bin/env sh
set -eu
eval $(ssh-agent -s)
KEYS=$(ls -p /var/ssh-keys/ | grep -v -e '/' -e config -e known_hosts -e '.pub$' -e authorized_keys)
echo "$KEYS" | xargs -I % ssh-add /var/ssh-keys/%
mkdir -p /root/.ssh
ssh-keyscan github.com >> /root/.ssh/known_hosts
echo 'host github.com' > /root/.ssh/config

Keybase proof

I hereby claim:

  • I am jpbochi on github.
  • I am jpbochi (https://keybase.io/jpbochi) on keybase.
  • I have a public key whose fingerprint is 63F8 99D6 4386 AA0C AF2F FA06 46C0 764A 272F 53FC

To claim this, I am signing this object:

@jpbochi
jpbochi / best.sh
Last active August 16, 2016 09:47
bash file template
#!/usr/bin/env bash
# Bash3 Boilerplate. Copyright (c) 2014, kvz.io
# http://kvz.io/blog/2013/11/21/bash-best-practices/
# https://github.com/kvz/bash3boilerplate
set -o errexit
set -o pipefail
set -o nounset
# set -o xtrace