Skip to content

Instantly share code, notes, and snippets.

View nlm's full-sized avatar
🚀

Nicolas Limage nlm

🚀
View GitHub Profile
@nlm
nlm / codegenerator.py
Created August 7, 2017 09:11
Jinja2 custom code generator to detect unused variables
from jinja2.compiler import CodeGenerator
class CustomCodeGenerator(CodeGenerator):
def __init__(self, *args, **kwargs):
super(CustomCodeGenerator, self).__init__(*args, **kwargs)
self._vars_tracker = set()
def visit_Template(self, *args, **kwargs):
super(CustomCodeGenerator, self).visit_Template(*args, **kwargs)

Keybase proof

I hereby claim:

  • I am nlm on github.
  • I am nlm (https://keybase.io/nlm) on keybase.
  • I have a public key ASB8RuHIrkhrI3_3DVp-RrZ8yPGOhYIBJMdc-35nXfLCvAo

To claim this, I am signing this object:

#! /bin/bash -eu
# curl -sL https://gist.github.com/nlm/dfd81e1793da4bf7f3b5f9022468d204/raw/30039fe9d1266b99ab6fd60ec0c63c275bba0d19/install_docker_on_ubuntu.sh | bash -eu
apt-get update
apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
@nlm
nlm / with_context.py
Created September 23, 2020 12:12
decorator for context management outside functions
from functools import partial
from contextlib import ExitStack
from types import SimpleNamespace
from collections import namedtuple
def with_context(**contexts):
def decorator(func):
def wrapper(*args, **kwargs):
with ExitStack() as stack:
@nlm
nlm / kubectl-shell
Created March 4, 2022 13:33
Kubectl extension to spawn a shell on a k8s node
#!/bin/bash -eu
# This script starts a new pod with a privileged container to run admin commands
if [ "$#" -ne 1 ]; then
echo "usage: $0 nodeName" >&2
exit 1
fi
node=${1:?}
nodeName=$(kubectl get node ${node} -o template --template='{{index .metadata.labels "kubernetes.io/hostname"}}')
podName=${USER:-unknown}-shell-${nodeName}
exec kubectl run ${podName:?} --restart=Never -it --rm --image overriden --overrides '