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