21 lines
424 B
Bash
21 lines
424 B
Bash
|
#! /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
|