Skip to content

Instantly share code, notes, and snippets.

View hartsock's full-sized avatar

Shawn Hartsock hartsock

View GitHub Profile
@hartsock
hartsock / logs_to_json.py
Created March 6, 2025 19:10
Tries to interpret arbitrary log data with embedded python and json objects as valid JSON. This is probably not safe. This really only understands the Python and JSON when they are on their own lines.
#!/usr/bin/env python3
import collections.abc
import json
import numbers
import sys
###############################################################################
# converts a stdin text stream of python data and json data into pure json
# this script should eventually get deleted
# this script has NO smart flow control
@hartsock
hartsock / repeat.sh
Created October 4, 2022 13:50
Repeat the rest of the CLI 30 times. Example: `repeat.sh echo "foo"`
#!/usr/bin/env bash
STOP=30
i=0;
while [ $i -le $STOP ]
do
i=$((i+1))
echo -n "${i} :"
exec "$@"&
echo
@hartsock
hartsock / setup.py
Created May 14, 2021 18:03
A super generic Python3 setup.py
import io
import os
from setuptools import find_packages, setup
# Author @hartsock
#
# Why: copy into a directory with some python scripts you want to call a "library"
# How: pip3 install -e .
#
@hartsock
hartsock / upgrade-photon.yml
Created October 22, 2019 17:38
An Ansible playbook for upgrading VMware Photon OS 2.x to 3.x
---
- hosts: photon
remote_user: root
tasks:
- name: pip prerequisite
command: bash -c "tdnf -y install python-pip"
- name: python prerequisites
command: bash -c "pip install -I pexpect"
@hartsock
hartsock / sshd.go
Created August 14, 2019 17:07 — forked from jpillora/sshd.go
Go SSH server complete example - Read more here https://blog.gopheracademy.com/go-and-ssh/
// A small SSH daemon providing bash sessions
//
// Server:
// cd my/new/dir/
// #generate server keypair
// ssh-keygen -t rsa
// go get -v .
// go run sshd.go
//
// Client:
@hartsock
hartsock / gist:9199a1382423fa46305d92d74b0d5838
Created August 14, 2019 16:42 — forked from devinodaniel/gist:8f9b8a4f31573f428f29ec0e884e6673
Generate SSH RSA Private/Public Key pair with Golang
// This shows an example of how to generate a SSH RSA Private/Public key pair and save it locally
package main
import (
"crypto/rand"
"crypto/rsa"
"crypto/x509"
"encoding/pem"
"golang.org/x/crypto/ssh"
@hartsock
hartsock / keybase.md
Created July 5, 2019 15:08
keybase.md

Keybase proof

I hereby claim:

  • I am hartsock on github.
  • I am hartsocks (https://keybase.io/hartsocks) on keybase.
  • I have a public key ASBDED6lN9AWuOs6q22wMJr0mV5Bzxv2nTeTIuO-W7O01wo

To claim this, I am signing this object:

@hartsock
hartsock / Jenkinsfile
Created May 15, 2019 17:48
A Jenkins Declarative Pipeline with parallel execution and coordination based on actions in each parallel node.
/**
* Problem:
* I have some action occurring on several parallel nodes. The action may have a diffrent result on each node non-deterministically.
* I need to act from the master depending on the result at each node.
*
* For a contrived example, we record the name of each node used to act on the parallel actions specified in this pipeline. The
* names are collected in a global string and a global `Map<String,String>` object for use by the master.
*
*/
value = ':'
@hartsock
hartsock / prune-all.sh
Created February 25, 2019 17:02
Docker Swarm - Prune all Stopped containers on all Nodes in swarm
for NODE in $(docker node ls --format '{{.Hostname}}'); do
IP_ADDR="$(docker node inspect --format '{{.Status.Addr}}' "${NODE}")";
echo -e "${NODE} - $(docker node inspect --format '{{.Status.Addr}}' "${NODE}")";
# Presumes your manager node can SSH into all worker nodes
ssh ${IP_ADDR} docker container prune -f
done
@hartsock
hartsock / node-ips.sh
Created February 25, 2019 16:59
Docker Swarm - List all Node IP addresses
for NODE in $(docker node ls --format '{{.Hostname}}'); do
echo -e "${NODE} - $(docker node inspect --format '{{.Status.Addr}}' "${NODE}")";
done