Skip to content

Instantly share code, notes, and snippets.

View matthiasbeyer's full-sized avatar
🦀
Rusting hard

Matthias Beyer matthiasbeyer

🦀
Rusting hard
View GitHub Profile
@matthiasbeyer
matthiasbeyer / lint.yaml
Created May 31, 2022 07:18
github action for linting commit messages with gitlint
name: lint commit messages
on:
pull_request:
jobs:
commit-lint:
runs-on: "ubuntu-latest"
steps:
@matthiasbeyer
matthiasbeyer / pre-commit
Last active May 1, 2022 08:07
Non-failing cargo fmt git hook for files patched in current staging
#!/usr/bin/env bash
Green='\e[0;32m' # Green
Red='\e[0;31m' # Red
Color_Off='\e[0m' # Text Reset
files=$(cargo fmt -- --check --files-with-diff)
staged=$(git diff --name-only --staged)
@matthiasbeyer
matthiasbeyer / mypackage.nix
Created November 9, 2021 20:00
Using a specific nixpkgs version to install a package
{ pkgs ? (import <nixpkgs> {}) }:
rec {
# import nixpkgs from a specific commit hash
oldNixpkgs = pkgs.fetchFromGitHub {
owner = "nixos";
repo = "nixpkgs";
# here goes the commit hash
rev = "c2268175651c4aa1da23c1b84ecebc0a0df56633";
@matthiasbeyer
matthiasbeyer / git-diff-to.sh
Created April 17, 2021 09:33
diff a branch to a base branch
#!/usr/bin/env bash
help() {
cat <<EOS
$0 [-h | --help] [base] [head]
Diff current branch (or [head], if passed) to [base]
EOS
}
@matthiasbeyer
matthiasbeyer / lib.rs
Created October 15, 2020 09:29
Stream of buffers to stream of lines
// should be all code...
use std::pin::Pin;
use std::result::Result as RResult;
use futures::Stream;
use futures::StreamExt;
use futures::task::Context;
use futures::task::Poll;
use anyhow::Error;
@matthiasbeyer
matthiasbeyer / remote-build.sh
Created October 13, 2020 09:14
execute nix-build remote
#!/usr/bin/env bash
host="$1"
branch="$2"
pkg="$3"
remote_dir="$$"
[[ -z "$host" ]] && { echo "no HOST"; exit 1; }
[[ -z "$branch" ]] && { echo "no branch"; exit 1; }
[[ -z "$pkg" ]] && { echo "no pkg"; exit 1; }
@matthiasbeyer
matthiasbeyer / example.rs
Created December 6, 2019 23:10
Context menu with Cursive
use cursive::event::{Event, Key};
use cursive::traits::*;
use cursive::views::{Dialog, EditView, OnEventView, TextArea};
use cursive::Cursive;
use cursive::view::Boxable;
use cursive::views::SelectView;
use cursive::event::EventResult;
use cursive::align::HAlign;
use cursive_context_menu::ContextMenu;
#
# Copy this to ~/.config/sway/config and edit it to your liking.
#
# Read `man 5 sway` for a complete reference.
#
input * xkb_layout "de"
input * xkb_variant "nodeadkeys"
input 2:7:SynPS/2_Synaptics_TouchPad {
@matthiasbeyer
matthiasbeyer / git-apply-github-pr
Created April 13, 2019 22:00
A script to apply github PRs as one commit
#!/usr/bin/env bash
while read line
do
patch=$(echo "$line" | sed
's,github\.com,patch-diff.githubusercontent.com/raw,; s,$,.patch,')
prnr=$(echo "$line" | sed 's,.*/,,')
curl $patch | git am -s || exit 1
{ pkgs }:
rec {
optimizeWithFlag = pkg: flag:
pkg.overrideAttrs (attrs: {
NIX_CFLAGS_COMPILE = (attrs.NIX_CFLAGS_COMPILE or "") + " ${flag}";
});
optimizeWithFlags = pkg: flags:
pkgs.lib.foldl' (pkg: flag: optimizeWithFlag pkg flag) pkg flags;