Skip to content

Instantly share code, notes, and snippets.

View mat813's full-sized avatar

Mathieu Arnold mat813

View GitHub Profile
@mat813
mat813 / direnv-gitlab-node.sh
Last active November 25, 2023 08:44
Get current node version from .gitlab-ci.yml
use_mynode() {
local file=${1:-.gitlab-ci.yml}
local node_version
watch_file "$file"
# NODE_VERSION: 18.2.0-alpine
node_version=$(sed -n '/NODE_VERSION:/s/NODE_VERSION:[[:space:]]*\([^-]*\)\(-.*\)\?/\1/p' $file)
if [ -z "$node_version" ]; then
const farey = (x: number, N: number): [number, number] => {
if (x > 1) {
const units = Math.floor(x);
const [a, d] = farey(x - units, N);
return [a + units * d, d];
}
let [a, b] = [0, 1];
let [c, d] = [1, 1];
@mat813
mat813 / dns-bind918-Makefile.local
Last active March 21, 2023 11:36
Add flavors to dns/bind918 to automate testing all options.
.if empty(FLAVOR)
FLAVOR= normal
.endif
CONFIGURE_ARGS+= --enable-full-report
.if defined(BIND_TOOLS_SLAVE)
FLAVORS= normal small huge ${OPTIONS_SINGLE_GSSAPI:NGSSAPI_NONE:tl}
. if ${FLAVOR} == small
@mat813
mat813 / send-to-encrypted.sh
Created January 7, 2021 12:07
Script to send from an unencrypted zfs pool to an encrypted zfs pool
#!/bin/sh
set -e
set -u
send=$1
receive=$2
echo "from $send"
echo "to $receive"
@mat813
mat813 / batch_stream.js
Created November 9, 2020 16:30
Batch transform stream javascript
const { Transform } = require('stream');
const batchStream = (batchSize = 5) => {
let batch = [];
return new Transform({
objectMode: true,
transform(data, _, done) {
batch.push(data);
@mat813
mat813 / convert.pl
Last active January 12, 2017 18:37
Convert a directory containing zone files into a dlz directory
#!/usr/bin/env perl
#
use 5.008;
use utf8;
use strict;
use warnings;
use File::Spec;
use File::Path qw(make_path);
@mat813
mat813 / export-import.sh
Created November 21, 2016 18:21
Export/Imports commits from/to a git branch
for i in $(git branch|cut -b 3-|sed -e '/^trunk$/d;/^svnadmin$/d')
do
mkdir -p ../patch/$i
git format-patch -o ../patch/$i origin/trunk..$i
git show $(head -1 ../patch/$i/0001-*|awk '{print $2}')~1|grep git-svn-id > ../patch/$i/rev-svn
done
for i in $(find ../patch -name rev-svn|sed -e 's/^..\/patch\///;s/\/rev-svn$//')
do
rev=$(sed -e 's/.*@\([[:digit:]]*\) .*/\1/' ../patch/$i/rev-svn)
@mat813
mat813 / LICENSE
Last active June 8, 2021 15:05
Scripts around acme_tiny to manage keys, requests, certificates...
Copyright (c) 2016 Mathieu Arnold. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
@mat813
mat813 / build.sh
Last active August 29, 2015 14:23
Build the FreeBSD docs
#!/bin/sh
# Needs sysutils/watchman, textproc/jq
set -e
BUILD_OBJ=/usr/home/mat/work/freebsd/doc-obj
watchman watch ${PWD} > /dev/null
# Subscribe to changes in $PWD, don't care about anything it returns,
@mat813
mat813 / shuffle.sh
Created April 10, 2015 10:39
Use pdftk to shuffle even and reverse odd scanned pages in a single document
#!/bin/sh
if [ `expr $# % 2` -ne 0 ]
then
echo "odd number of arguments"
exit 1
fi
while [ $# -gt 0 ]
do