#! /bin/sh set -eu # requires env: # $state_dir # $origin # in PATH: git,lentil,coreutils subdir=`echo "$1" | tr -dc "[:alnum:]"` name=`echo "$origin" | tr -dc "[:alnum:]"` track="$state_dir/$name-checkout" (if test -e "$track" ;then cd "$track" git fetch origin master git reset --hard origin/master else git clone "$origin" "$track" fi) >&2 cd "$track" lentil "${subdir:-.}" -f csv | sed 1d | shuf | head -1