Skip to content

Instantly share code, notes, and snippets.

@toddlers
toddlers / Makefile
Created May 25, 2020
language interpreters in Makefiles
View Makefile
.ONESHELL:
.SILENT:
main: \
python \
ruby \
R \
bash \
docker
@toddlers
toddlers / cfn-policy.sh
Created Apr 13, 2020
apply nested stack policy
View cfn-policy.sh
function protect_nested_stacks() {
local parent_stack=$1 stack_policy_file=$2
local nested_stacks=$(aws cloudformation list-stack-resources \
--stack-name ${parent_stack} \
--query "StackResourceSummaries[?ResourceType=='AWS::CloudFormation::Stack'].[PhysicalResourceId]" \
--output text
)
for stack in ${nested_stacks}; do
aws cloudformation set-stack-policy --stack-name ${stack} --stack-policy-body file://${stack_policy_file}
@toddlers
toddlers / embed_interface.go
Created Jan 8, 2020
interfaces and type embedding golang
View embed_interface.go
package main
import "fmt"
type Boss struct{}
func (b *Boss) AssignWork() {
fmt.Println("Boss assigned work")
}
View golambda.sh
mkdir helloworld
cd !$
go get github.com/aws/aws-lambda-go/lambda
GOOS=linux go build -o helloworld
aws iam create-role --role-name lambda-basic-execution
--assume-role-policy-document file://lambda-trust-policy.json
View cobra-klog.go
package main
import (
"flag"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
"k8s.io/klog"
)
View awscli-jq.sh
wget http://stedolan.github.io/jq/download/linux64/jq
aws ec2 describe-instances --filters "Name=tag:Name,Values=$NAME" \
"Name=instance-state-name,Values=running" \
| jq -r \
".Reservations[] | .Instances[] | .InstanceId" \
aws ec2 describe-volumes --filters \
"Name=status,Values=available" \
| jq -r ".Volumes[] | .VolumeId" \
@toddlers
toddlers / abbreviated-unbound.conf
Created Jan 15, 2019 — forked from bryanjswift/abbreviated-unbound.conf
Unbound (http://unbound.net/) configuration for local network device testing.
View abbreviated-unbound.conf
# The server clause sets the main parameters.
server:
# Allow network connections outside of localhost
interface: 0.0.0.0
# Don't automatically run in the background because I want to be able to kill it without hunting a pid
do-daemonize: no
# TODO: Change this to your network range, like `192.168.0.0/16 allow`
access-control: 10.0.0.0/16 allow
# TODO: Change this to your username, or whatever user you want to run/own the `unbound` process
username: "bryanjswift"
@toddlers
toddlers / go-shebang-story.md
Created Jun 29, 2018 — forked from posener/go-shebang-story.md
Story: Writing Scripts with Go
View go-shebang-story.md

Story: Writing Scripts with Go

This is a story about how I tried to use Go for scripting. In this story, I’ll discuss the need for a Go script, how we would expect it to behave and the possible implementations; During the discussion I’ll deep dive to scripts, shells, and shebangs. Finally, we’ll discuss solutions that will make Go scripts work.

Why Go is good for scripting?

While python and bash are popular scripting languages, C, C++ and Java are not used for scripts at all, and some languages are somewhere in between.

@toddlers
toddlers / awscli.sh
Created Apr 10, 2018
aws instance ip and id
View awscli.sh
aws ec2 describe-instances –region=us-east-1 | jq ‘.”Reservations”[].”Instances”[] | .PrivateIpAddress + ” ” + .InstanceType’ | sed s/\”//g
@toddlers
toddlers / s3logs_analysis.sql
Created Mar 21, 2018
s3logs_analysis via Athena
View s3logs_analysis.sql
/* Create a database in Athena */
CREATE DATABASE s3_AccessLogsDB;
/*
Create a table within the Athena database
Replace s3://MY_S3_BUCKET/ with your S3 bucket
which has the access logs you want to query
*/
CREATE EXTERNAL TABLE IF NOT EXISTS s3_AccessLogs.Accesslogs(
BucketOwner string,
You can’t perform that action at this time.