Skip to content

Instantly share code, notes, and snippets.

View SansGuidon's full-sized avatar
Curious mind reading about everything

SansGuidon SansGuidon

Curious mind reading about everything
  • Zoemp
View GitHub Profile
@Faheetah
Faheetah / module.sh
Last active March 18, 2022 01:01
Ansible bash module boilerplate
#!/bin/bash
# Source arguments from Ansible
# These are passed into the module as $1 with a key=value format
# Sourcing this file sets the variables defined in the Ansible module
# Note that variables that are unused in the module are silently ignored
source $1
# Helper function to fail the module with the specified error
# This can accept $@ in printf for the full error
@HopefulLlama
HopefulLlama / properties.groovy
Last active June 4, 2024 08:17
Print all properties of a Groovy object
println object.properties
.sort{it.key}
.collect{it}
.findAll{!['class', 'active'].contains(it.key)}
.join('\n')
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
# -e: immediately exit if any command has a non-zero exit status
# -u: reference to any variable you haven't previously defined is an error
# -o: prevents errors in a pipeline from being masked
# IFS new value is less likely to cause confusing bugs when looping arrays or arguments (e.g. $@)
# Example: positional parameters
@Faheetah
Faheetah / Dockerfile
Last active October 19, 2022 15:22
Docker patterns/anti-patterns
### Generic Dockerfile demonstrating good practices
### Imports
# Bad-ish, we do not need Ubuntu for this, nor do we want latest if we are using in a build system, predictable is better
FROM ubuntu:latest
# Better, using a small image since our app has no dependency on Ubuntu
FROM alpine:3.3
@josh-padnick
josh-padnick / fish-agent.sh
Last active June 20, 2025 19:55
Run ssh-agent via fish shell
#!/bin/bash
#
# Convert ssh-agent output to fish shell
#
eval "$(ssh-agent)" >/dev/null
echo "set SSH_AUTH_SOCK \"$SSH_AUTH_SOCK\"; export SSH_AUTH_SOCK"
echo "set SSH_AGENT_PID \"$SSH_AGENT_PID\"; export SSH_AGENT_PID"
@raidzero
raidzero / .bashrc
Created April 25, 2016 20:56
show git branch in command prompt
function get_git_branch_prompt() {
echo " `git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\(\1\)\ /'`"
}
function git_prompt {
local __git_branch='`get_git_branch_prompt`'
export PS1="\@ \W\[\033[32m\]$__git_branch\[\033[00m\]\$ "
}
git_prompt

If you've had to re-associate your virtual machine with vagrant, but vagrant ssh now requires a password to connect, this is because the ssh key associated with the box disappeared. You can still get in with the password vagrant (usually), but many workflows will need the automatic connection.

Here's how to regain public/private key authentication to ssh into your vagrant virtual machine:

Run vagrant up, then vagrant ssh-config to find the IdentityFile:

$ vagrant ssh-config
Host default
  HostName 127.0.0.1
@Faheetah
Faheetah / Jenkinsfile.groovy
Last active July 31, 2025 07:57
Jenkinsfile idiosynchrasies with escaping and quotes
node {
echo 'Results included as an inline comment exactly how they are returned as of Jenkins 2.121, with $BUILD_NUMBER = 1'
echo 'No quotes, pipeline command in single quotes'
sh 'echo $BUILD_NUMBER' // 1
echo 'Double quotes are silently dropped'
sh 'echo "$BUILD_NUMBER"' // 1
echo 'Even escaped with a single backslash they are dropped'
sh 'echo \"$BUILD_NUMBER\"' // 1
echo 'Using two backslashes, the quotes are preserved'
sh 'echo \\"$BUILD_NUMBER\\"' // "1"
@andreicristianpetcu
andreicristianpetcu / ansible-summary.md
Created May 30, 2016 19:25
This is an ANSIBLE Cheat Sheet from Jon Warbrick

An Ansible summary

Jon Warbrick, July 2014, V3.2 (for Ansible 1.7)

Configuration file

intro_configuration.html

First one found from of

@atoponce
atoponce / gist:07d8d4c833873be2f68c34f9afc5a78a
Last active July 29, 2025 04:20 — forked from tqbf/gist:be58d2d39690c3b366ad
Cryptographic Best Practices

Cryptographic Best Practices

Putting cryptographic primitives together is a lot like putting a jigsaw puzzle together, where all the pieces are cut exactly the same way, but there is only one correct solution. Thankfully, there are some projects out there that are working hard to make sure developers are getting it right.

The following advice comes from years of research from leading security researchers, developers, and cryptographers. This Gist was [forked from Thomas Ptacek's Gist][1] to be more readable. Additions have been added from