Skip to content

Instantly share code, notes, and snippets.

View lifeofguenter's full-sized avatar
💭
I'm just a thin layer on top of AWS

Günter Grodotzki lifeofguenter

💭
I'm just a thin layer on top of AWS
View GitHub Profile
@lifeofguenter
lifeofguenter / Dockerfile
Created May 10, 2021 08:14
Multistep Docker build with Golang
# builder
FROM golang:1.16-buster AS builder
ARG DEBIAN_FRONTEND="noninteractive"
RUN set -ex && \
apt-get -qq update && apt-get -y -qq install \
gcc
WORKDIR /go/src/app
ARG spinnaker_version
FROM us-docker.pkg.dev/spinnaker-community/docker/front50:spinnaker-${spinnaker_version}
COPY services/front50/*.yml /opt/front50/config/
COPY spinnaker.yml /opt/front50/config/
@lifeofguenter
lifeofguenter / entrypoint.sh
Last active November 3, 2023 13:52
Dynamically set php-fpm workers in docker containers.
#!/usr/bin/env bash
set -eo pipefail
logger() {
printf '%s (%s) %s [%s]: %s\n' "$(date)" "$(whoami)" "${BASH_SOURCE}" "${1}" "${2}"
}
# determine maxprocs according to cgroup-mem-limit
memory_available="$(cat /sys/fs/cgroup/memory/memory.limit_in_bytes)"
@lifeofguenter
lifeofguenter / firefox.desktop
Last active July 5, 2019 22:29
Desktop files
[Desktop Entry]
Name=Firefox
Comment=Web Browser
GenericName=Web Browser
X-GNOME-FullName=Firefox Web Browser
Exec=env MOZ_ACCELERATED=1 MOZ_WEBRENDER=1 /opt/firefox/firefox %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=/opt/firefox/browser/chrome/icons/default/default128.png
@lifeofguenter
lifeofguenter / EventHandlers.vbs
Created June 28, 2019 07:54
hMailServer: remove/anonymise "received" header from outgoing emails
' Anonymise "Received" header on outgoing emails
Sub OnAcceptMessage(oClient, oMessage)
' Only delete received headers from own clients/submissions
If Len(oClient.Username) > 0 Then
Dim oHeaders
set oHeaders = oMessage.Headers
Dim i
For i = oHeaders.Count -1 To 0 Step -1
@lifeofguenter
lifeofguenter / aws.sh
Created November 7, 2018 10:08
bash_profile functions
# will search either by instance-name or instance-id
# on instance-id it will return the first match, on instance-name it will return all matches
# will iterate through all your ~/.aws/credentials profiles
#
# Usage: aws-find-ec2 NAME-OR-INSTANCE-ID
# Example output:
# ~  aws-find-ec2 i-1234567abcdefghijk
# - checking company-master...
# - checking company-development...
# asg-platform / i-1234567abcdefghijk / 172.0.1.200
tpl::render() {
local assign_re='@@([A-Za-z0-9_]+)@@'
while IFS='' read -r line || [[ -n "${line}" ]]; do
while [[ "${line}" =~ $assign_re ]]; do
line="${line/${BASH_REMATCH[0]}/${!BASH_REMATCH[1]}}"
done
echo "${line}"
done < "${1}"
}
@lifeofguenter
lifeofguenter / jenkins-cleanup-nodes.sh
Created March 23, 2018 05:58
cleanup offline nodes (jenkins / ecs)
#!/usr/bin/env bash
throw_exception() {
echo "Ooops!"
echo 'Stack trace:' 1>&2
while caller $((n++)) 1>&2; do :; done;
exit 1
}
set -E

Keybase proof

I hereby claim:

  • I am lifeofguenter on github.
  • I am lifeofguenter (https://keybase.io/lifeofguenter) on keybase.
  • I have a public key ASCN7Zk0DWmLpu7GNeuYjrDdzR3wz-de3yQ_AO9f376EXgo

To claim this, I am signing this object:

@lifeofguenter
lifeofguenter / bash-completion-ssh.sh
Created November 10, 2017 09:48
~/.bash_completion.d/
# http://fahdshariff.blogspot.co.za/2011/04/writing-your-own-bash-completion.html
# https://unix.stackexchange.com/a/181603/111459
_ssh() {
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts=$(grep --no-messages '^Host' ~/.ssh/config ~/.ssh/config.d/* | grep -v '[?*]' | cut -d ' ' -f 2-)
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )