Skip to content

Instantly share code, notes, and snippets.

View lpenz's full-sized avatar
🐧
🦀 🐊

Leandro Lisboa Penz lpenz

🐧
🦀 🐊
View GitHub Profile
@lpenz
lpenz / pa-monofy-stereo
Last active March 26, 2017 18:54
Join audio sink channels into a single mono channel, for stereo audio files with sound in only a channel
#!/bin/bash
set -e -x
pacmd load-module module-remap-sink sink_name=mono master=$(pacmd list-sinks | grep -m 1 -oP 'name:\s<\K.*(?=>)') channels=2 channel_map=mono,mono
@lpenz
lpenz / ansible-apt-repos
Last active November 4, 2021 02:47
Install apt repositories with ansible
#!/bin/bash
set -x -e -o pipefail
: for deb-multimedia keyring, browse http://www.deb-multimedia.org/pool/main/d/deb-multimedia-keyring/deb-multimedia-keyring
ansible -i localhost, -c local localhost -m apt_repository -a 'repo="deb http://www.deb-multimedia.org stable main non-free"'
ansible -i localhost, -c local localhost -m apt_repository -a 'repo="deb http://www.deb-multimedia.org testing main non-free"'
ansible -i localhost, -c local localhost -m apt_repository -a 'repo="deb http://www.deb-multimedia.org unstable main non-free"'
: for dropbox
@lpenz
lpenz / winclick
Created November 17, 2016 13:55
Click a window selected by name; uses xwininfo and xdotool
#!/bin/bash
WINNAME="${1?usage: "$0" windowname}"
set -e
TMP=$(mktemp)
trap 'rm -f $TMP' EXIT
eval "$(xdotool getmouselocation --shell)"
@lpenz
lpenz / img2vagrant
Created October 5, 2016 17:12
Create a package.box for vagrant (virtualbox) from the specified raw img file
#!/bin/bash
IMG=${1?usage: $0 <img>}
NAME=wheezy32
set -e -x
rm -f "${IMG}.vmdk" package.box
VBoxManage convertfromraw "$IMG" "${IMG}.vmdk" --format vmdk
VBoxManage unregistervm "$NAME" --delete || :
@lpenz
lpenz / debootstrap-vagrant
Last active October 4, 2016 22:22
Use debootstrap to create a chroot that can be turned into a vagrant-compatible (virtualbox, wheezy 32) VM
#!/bin/bash
DIR=${1?usage: $0 <dir>}
NAME=${DIR##*/}
set -e -x
rm -rf "$DIR"
trap 'set +e; umount "$DIR/proc"; umount "$DIR/sys"; rm -rf "$DIR"' EXIT INT
@lpenz
lpenz / dir2img
Last active April 22, 2019 16:24
Script that creates a bootable qcow2 img with a directory's contents - installs mbr and extlinux
#!/bin/bash
DIR=${1?usage: $0 <dir> <img>}
OUT=${2?usage: $0 <dir> <img>}
set -e -x
rm -f "$OUT"
trap 'rm -f $OUT' EXIT INT
virt-make-fs --partition=mbr --type=ext3 --format=raw --size=+300M "$DIR" "$OUT"
@lpenz
lpenz / Vagrantfile-aws
Last active March 4, 2019 15:26
Vagrantfile for AWS with sshfs
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure('2') do |config|
config.vm.box = 'dummy'
config.ssh.forward_agent = 'true'
config.vm.synced_folder '.', '/vagrant', type: 'sshfs' # only works with ubuntu
config.vm.provider :aws do |aws, override|
@lpenz
lpenz / livedeb
Last active June 25, 2019 14:02
Creates a live debian on the provided (already partitioned) device
#!/bin/bash
DEV=${1?must specify a device}
function finish {
for d in boot dev/pts dev proc sys; do
if test -d "$PWD/usbroot/$d" && mount | grep -q "$PWD/usbroot/$d"; then
umount "$PWD/usbroot/$d"
fi
done
@lpenz
lpenz / .travis.yml
Created February 21, 2016 12:22
Test .gitignore in travis
script:
- true TESTS RUN HERE
- true Test if we .gitignore test files
- TMP=$(tempfile)
- git ls-files . --exclude-standard --others | tee "$TMP"
- if test -s "$TMP"; then false; else true; fi
- true Test if we .gitignore any tracked files
- git ls-files -i --exclude-standard | tee "$TMP"
- if test -s "$TMP"; then false; else true; fi
@lpenz
lpenz / docker-gc
Last active April 18, 2016 19:48
Docker garbage collector
#!/bin/bash
set -x -e
: gc conteiners
docker ps --filter 'status=exited' -q | xargs -r docker rm
docker ps --filter 'status=created' -q | xargs -r docker rm
: gc images
docker images --filter "dangling=true" -q | xargs -r docker rmi