shithub: riscv

Download patch

ref: 54cafd210657a38e7960de21fb092506659d69a0
parent: 2321062d2f73709afa85f002a6a0c7917ac307d4
author: Ori Bernstein <[email protected]>
date: Mon May 17 09:46:44 EDT 2021

git: add missing file

Forgot to add common.rc in the initial commit.

--- /dev/null
+++ b/sys/lib/git/common.rc
@@ -1,0 +1,91 @@
+nl='
+'
+
+fn die{
+	>[1=2] echo $0: $*
+	exit $"*
+}
+
+fn usage{
+	>[1=2] echo -n 'usage:' $usage
+	exit 'usage'
+}
+
+# subst [-g] this [that]
+fn subst{
+	awk 'BEGIN{
+		global = 0
+		for(i = 1; ARGV[i] ~ /^-/; i++){
+			if(ARGV[i] == "-g")
+				global = 1
+			ARGC--
+		}
+		this = ARGV[i++]; ARGC--
+		that = ARGV[i++]; ARGC--
+	}
+	{
+		if(global) gsub(this, that)
+		else sub(this, that)
+		print
+	}' $*
+}
+
+fn present {
+	if(~ $1 /dev/null && cmp $2 $3>/dev/null)
+		status=gone
+	if not if (~ $3 /dev/null && cmp $1 $2>/dev/null)
+		status=gone
+	if not
+		status=()
+}
+
+# merge1 out theirs base ours
+fn merge1 {
+	n=$pid
+	out=$1
+	theirs=$2
+	base=$3
+	ours=$4
+	tmp=$out.tmp
+	while(test -f $tmp){
+		tmp=$tmp.$n
+		n=`{echo $n + 1 | hoc}
+	}
+
+	if(! test -f $ours)
+		ours=/dev/null
+	if(! test -f $base)
+		base=/dev/null
+	if(! test -f $theirs)
+		theirs=/dev/null
+	if(! ape/diff3 -3 -m $ours $base $theirs > $tmp)
+		echo merge needed: $out
+
+	if(present $ours $base $theirs){
+		mv $tmp $out
+		git/add $out
+	}
+	if not {
+		rm -f $tmp $out
+		git/rm $out
+	}
+}
+
+fn gitup{
+	gitroot=`{git/conf -r >[2]/dev/null}
+	if(~ $#gitroot 0)
+		die 'not a git repository'
+	gitrel=`{pwd | subst '^'$"gitroot'/?'}
+	if(~ $#gitrel 0)
+		gitrel='.'
+	cd $gitroot
+	startfs=()
+	if(! test -e /mnt/git/ctl)
+		startfs=true
+	if(! grep -s '^repo '$gitroot'$' /mnt/git/ctl >[2]/dev/null)
+		startfs=true
+	if(~ $#startfs 1)
+		git/fs
+	if not
+		status=''
+}