shithub: git9

ref: 6888b49d4ee35b2adb09679b784f56174b18af58
dir: /init/

View raw version
#!/bin/rc

rfork e

fn usage{
	echo git/init [-b] name >[1=2]
	echo '	-b	init bare repository' >[1=2]
	exit usage
}

sub='/.git'
upstream=()
while(~ $1 -*){
	switch($1){
	case '-b';
		sub=''
	case '-u';
		shift
		if(~ $#* 0)
			usage
		upstream=$1
		shift
	case *;
		usage
	}
	shift
}

if (~ $#* 0)
	dir=.
if not if(~ $#* 1)
	dir=$1
if not
	usage

if(test -e $dir$sub){
	echo $dir$sub already exists >[1=2]
	exit exists
}

mkdir -p $dir$sub
dircp /sys/lib/git/template $dir/$sub
if(! ~ $#upstream 0){
	echo '[remote "origin"]' >> $dir/$sub/config
	echo '	url='$upstream >> $dir/$sub/config
}
echo '[branch "master"]' >> $dir/$sub/config
echo '	remote = origin' >> $dir/$sub/config
echo '	merge = refs/heads/master'  >> $dir/$sub/config
mkdir -p $dir/$sub/refs/heads
mkdir -p $dir/$sub/refs/remotes