shithub: git9

ref: 4eda12bdbcc8fe7acc4a2a81499ff853e64b1c4a
dir: /add/

View raw version
#!/bin/rc -e
rfork ne

fn usage {
	echo usage: $0 '[-r] file ...
	-r:	remove instead of adding' >[1=2]
	exit usage
}

add='tracked'
del='removed'
while(~ $1 -* && ! ~ $1 --){
	switch($1){
	case -r
		add='removed'
		del='tracked'
	case *
		usage
	}
	shift
}
if(~ $1 --)
	shift

dir=`{pwd}
base=`{git/conf -r}
x=$status
if(! ~ $x ''){
	echo git/conf: $x `{pwd} >[1=2]
	exit $x
}

cd $base
rel=`{sed 's@^'$base'/*@@' <{echo $dir}}
if(~ $#rel 0)
	rel=''
for(f in $*){
	if(! test -f $base/$rel/$f){
		echo 'could not add '$base/$rel/$f': does not exist' >[1=2]
		exit 'nofile'
	}
	addpath=.git/index9/$add/$rel/$f
	delpath=.git/index9/$del/$rel/$f
	mkdir -p `{basename -d $addpath}
	mkdir -p `{basename -d $delpath}
	touch $addpath
	rm -f $delpath
}