Skip to content

Instantly share code, notes, and snippets.

William Normand Faheetah

  • Dallas, TX
Block or report user

Report or block Faheetah

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@Faheetah
Faheetah / decorators.py
Last active Nov 30, 2018
Python Decorator Foo
View decorators.py
# I always get confused with decorators because of all the nesting and where all of the arguments go
# Reference of using decoratores with arguments and with classes
## Very Simple Decorator
def foo(f):
# Inner function that must be returned
def decorator():
print('decorator')
# Will be bar() from the below wrapped call
@Faheetah
Faheetah / rethinkdb.py
Created Aug 17, 2017
Ansible RethinkDB dynamic inventory module
View rethinkdb.py
#!/usr/bin/env python
import json
import rethinkdb as r
from os import environ as env
HOST = env.get('RETHINK_HOST', '127.0.0.1')
PORT = env.get('RETHINK_PORT', 28015)
DB = env.get('RETHINK_DB', 'inventory')
GROUP = env.get('RETHINK_GROUP', 'dev')
@Faheetah
Faheetah / ap
Created Aug 15, 2017
Ansible helper script
View ap
#!/bin/bash
set -e
find_ansible_dir() {
dir=$(readlink -f ${1:-.})
if [ $dir = '/' ]
then
echo "Could not find a playbook in $(pwd)"
@Faheetah
Faheetah / improved.py
Created Oct 18, 2016
Ansible stdout callback module with better output, used by output=method in task name
View improved.py
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
import sys
from ansible import constants as C
from ansible.plugins.callback.default import CallbackModule as CallbackModule_default
from ansible.utils.color import colorize, hostcolor
def _color(play):
@Faheetah
Faheetah / pointless.py
Created Oct 1, 2016
Pointless self replicating Python script
View pointless.py
contents = '''contents = {0}{0}{0}{1}{0}{0}{0}
contents = contents.format('\{0}',contents)
with open("pointless.py", "w") as f:
f.write(contents)
'''
contents = contents.format('\'',contents)
@Faheetah
Faheetah / macbeth.yml
Last active Aug 24, 2016
Poor man's audiobook
View macbeth.yml
- hosts: localhost
tasks:
- uri:
url: http://www.textfiles.com/etext/AUTHORS/SHAKESPEARE/shakespeare-macbeth-46.txt
return_content: true
register: blah
- osx_say:
msg: "{{ blah.content|replace('\n', ' ')|replace('\t',' ') }}"
@Faheetah
Faheetah / Jenkinsfile.groovy
Last active Nov 14, 2019
Jenkinsfile idiosynchrasies with escaping and quotes
View Jenkinsfile.groovy
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"
@Faheetah
Faheetah / Dockerfile
Last active Sep 30, 2019
Docker patterns/anti-patterns
View Dockerfile
### 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
@Faheetah
Faheetah / module.sh
Last active May 15, 2019
Ansible bash module boilerplate
View module.sh
#!/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
You can’t perform that action at this time.