Skip to content

Instantly share code, notes, and snippets.

View mafredri's full-sized avatar

Mathias Fredriksson mafredri

View GitHub Profile
@mafredri
mafredri / build_chromium_headless.sh
Created March 9, 2017 16:09
Script to build (and update) headless Chromium on Ubuntu
#!/usr/bin/env zsh
# This script checks out the latest chromium and builds the headless
# version of it. When the chromium source is already present, the
# repository is updated.
#
# A .tar.gz is created in $DIR containing the headless_shell binary,
# this binary runs chromium. The resulting binary should be quite
# portable given that the (few) dependencies are installed on the target
# machine.
@mafredri
mafredri / brew-go-get.sh
Last active August 29, 2021 17:16
Homebrew managed go get
#!/bin/bash
# brew-go-get
# Original: https://blog.filippo.io/cleaning-up-my-gopath-with-homebrew/
set -euo pipefail
name_to_repo() {
local name="$1"
name="${name/go-get-}"
echo "${name//--//}"
@mafredri
mafredri / itone.zsh
Created August 26, 2017 07:17
Convert mp3 to m4r (Apple Tone), limit to 39 seconds for use as iPhone ringtone
#!/usr/bin/env zsh
if (( ! ${#@} )); then
print "Convert mp3 to m4r (Apple Tone)"
print
print "Usage: $0 file1.mp3 file2.mp3"
exit 1
fi
tmpdir=$(mktemp -d)
@mafredri
mafredri / README.md
Last active February 23, 2020 13:29
Add custom SSH keys to the Ubiquiti UniFi Controller

Setting up custom SSH keys for UniFi hardware

  1. Create config.gateway.json to configure USG
  2. Create config.properties to configure switch / AP / etc...
  3. Place config.gateway.json and config.properties in data/sites/default
  4. Restart controller (maybe?)
  5. Reprovision all devices

Resources

@mafredri
mafredri / rm-backup.sh
Last active June 7, 2024 12:56
Scripts for the reMarkable tablet (backup and factory reset)
# Creates remarkable_backup-(date).tar.gz with todays date, backs up /home/root.
(
ssh root@10.11.99.1 'tar cf - .' \
| gzip >remarkable_backup-$(date '+%Y-%m-%d').tar.gz
) 2 >err.log
cat err.log
@mafredri
mafredri / translate-bookmarklet.js
Created August 11, 2018 10:03
A bookmarklet to quickly translate the current webpage using Google Translate
javascript:(function(){window.location='https://translate.google.com/translate?sl=auto&tl=en&js=y&prev=_t&hl=en&ie=UTF-8&edit-text=&u='+encodeURIComponent(window.location.href)})();void(0);
package main
import (
"context"
"fmt"
"log"
"net/http"
"time"
"github.com/mafredri/cdp"
// This example gives permission to access geolocation
// and fetches the current position via JavaScript.
// Tested on: cdp v0.18.7 and Chrome Canary 70.0.3532.0,
// and seems to work in both headless and headfull mode.
package main
import (
"context"
"fmt"
"log"
@mafredri
mafredri / gpg-yubikey-sign.sh
Last active December 17, 2018 10:14
gpg-yubikey-sign: Sign Git commits with any of your valid GPG subkeys
#!/usr/bin/env zsh
# gpg-yubikey-sign
#
# This script lets you use any of your unexpired subkeys connected to
# your public key (0xDEADBEEFCAFEBAAD) to sign git commits. It will also
# display "Waiting for YubiKey touch..." to remind you that an action is
# required.
#
# Add this script to your PATH and configure git to use it for gpg
# signing.
@mafredri
mafredri / usg_wireguard_upgrade.expect
Created March 1, 2019 11:57
Expect script to automate WireGuard upgrade on UniFi Security Gateway
#!/usr/bin/env expect -f
# Description: Expect script to automate WireGuard upgrade on UniFi Security Gateway
# Author: Mathias Fredriksson <mafredri@gmail.com>
# This script assumes non-interactive ssh login.
# Usage upgrade.expect <[user@]usg> <https://github.com/Lochnair/vyatta-wireguard/releases/download/${RELEASE}/wireguard-${BOARD}-${RELEASE}.deb>
set timeout 60