Skip to content

Instantly share code, notes, and snippets.

Avatar
💭
I may be slow to respond.

Nadim Khemir nkh

💭
I may be slow to respond.
View GitHub Profile
View ts
{
# find which repositories have changes, input: lib local_commit repo_commit
while IFS=$'\t' read -r -a revs ; do [[ "${revs[1]}" == "${revs[2]}" ]] || changed[${revs[0]}]=1 ; done < revisions
# find what test they trigger, input: repo test1 test2 ... and tests list
while IFS=$'\t' read -r -a deps ; do ((changed[${deps[0]}])) && { printf "%s\n" "${deps[@]:1}" | grep -f tests ; } ; done < dependencies
# add previously failed tests, input: faile test1 tes2 ...
awk '{ OFS="\n" ; /failed/ ; $1="" }1' < status
} | sed '/^$/d' | sort -u
View bff.sh
#!/bin/env bash
bff() # Inspired by fff. Run: bbf 3> some_file, to get exit-time selection
{
shopt -s checkwinsize ; trap 'rdir' SIGWINCH ;
declare -A dir_file filters marks tags ; show_dirs=1 ;kolumn=1
local BFF=(/ /home/nadim /home/nadim/nadim /home/nadim/nadim/downloads)
pushd "$1" &>/dev/null ; tabs+=("$PWD") ; tab=0 ; rdir
View union_intersection_differences
use Data::TreeDumper ;
@a = (1, 3, 5, 6, 7, 8 );
@b = ( 2, 3, 5, 7, 9);
# one loop
@union = @isect = @diff = ();
%union = %isect = %diff = ();
foreach $e (@a, @b)
@nkh
nkh / docker.sh
Created Aug 5, 2020
some fzf wrappers around docker
View docker.sh
# load docker completion
. /usr/share/bash-completion/completions/docker >/dev/null 2>&1
alias d=docker
complete -F _docker d
# extract columns interactively
di() { _dcol 'image ls' 2 ; }
din() { _dcol 'image ls' 0 1 ; }
dc() { _dcol 'container ls' 1 ; }
View set_command_cursor
#!/usr/bin/env bash
bind -x '"'"\C-k"'":"set_command_cursor"'
set_command_cursor()
{
local BACKSPACE=$(printf "0000000 005177\n0000002")
local TAB=$'\x09'
#local SHIFT_TAB=$(printf "????0000000 005033\n0000002") # todo:
#local SHIFT_TAB="$(echo -e '\e[Z')" #doesn'twork
View ir
#!/bin/bash
help_text=\
"NAME
ir - create a temporary file structure and run a viewer
SYNOPSIS
ir
ir directory [directory ...]
non_interactive_commands_pipeline | ir
View fzfp
#!/bin/bash
fd --type f -H --color=always | \
rg -v '.git(\u001B\[[0-9;m]+)*/' $* | \
fzf -e -m --ansi --preview 'bat --line-range 0:150 --tabs=4 -n --color=always {}' --preview-window='top:50%' --color="hl:51"
View fzfr
#!/bin/bash
# functions moved in a script so they can be used by fzf preview
# arg_n: echo "$2" | cut -d : -f $1
# minus_limit: test $(($number - $minus)) -le $limit && echo $limit || echo $(($number - $minus))
match=$( \
rg --no-heading -n --color=always --colors 'match:style:nobold' --colors 'match:fg:white' $* . | \
plc --values | \
fzf -e -m \
View html.pl6
use Data::Dump::Tree ;
use Data::Dump::Tree::Enums ;
use Data::Dump::Tree::ExtraRoles ;
use Terminal::ANSIColor ;
use LWP::Simple;
use DOM::Tiny ;
my @colors = < on_240 on_241 on_244 on_245 on_254 on_230 on_136 on_166 on_160 on_125 on_61 on_33 on_37 on_64 > ;
View zef_completion
_bgc_zef ()
{
commands="install \
uninstall \
test \
fetch \
build \
look \
update \
upgrade \