about summary refs log tree commit diff stats
path: root/core/conf/ports/drivers/git
diff options
context:
space:
mode:
authorSilvino Silva <silvino@bk.ru>2018-02-25 17:33:12 +0000
committerSilvino Silva <silvino@bk.ru>2018-02-25 17:33:12 +0000
commitef1f1f61daaf59d3e07d41ddd0ea713834f35e38 (patch)
tree5a34c6b419adc87a7887db8d2e6d25119e5434c3 /core/conf/ports/drivers/git
parent080558ffff535c438d6244ff17a5d106622c754e (diff)
downloaddoc-ef1f1f61daaf59d3e07d41ddd0ea713834f35e38.tar.gz
core install revision
Diffstat (limited to 'core/conf/ports/drivers/git')
-rwxr-xr-xcore/conf/ports/drivers/git47
1 files changed, 47 insertions, 0 deletions
diff --git a/core/conf/ports/drivers/git b/core/conf/ports/drivers/git
new file mode 100755
index 0000000..654a8c7
--- /dev/null
+++ b/core/conf/ports/drivers/git
@@ -0,0 +1,47 @@
+#!/bin/sh
+#
+# /etc/ports/drivers/git: git driver script for ports(8)
+#
+
+if [ $# -ne 1 ]; then
+	echo "usage: $0 <file>" >&2
+	exit 1
+fi
+
+. $1
+
+if [ -z "$URL" ]; then
+	echo "URL not set in '$1'" >&2
+	exit 2
+fi
+if [ -z "$NAME" ]; then
+	echo "NAME not set in '$1'" >&2
+	exit 2
+fi
+if [ -z "$BRANCH" ]; then
+	echo "BRANCH not set in '$1'" >&2
+	exit 2
+fi
+
+REPOSITORY="$PORTS_DIR/$NAME"
+if [ -n "$LOCAL_REPOSITORY" ]; then
+	REPOSITORY="$LOCAL_REPOSITORY"
+fi
+
+echo "Fetching updates from $URL"
+echo "Updating collection $NAME"
+
+cd "$REPOSITORY" 2> "/dev/null"
+
+if [ $? -lt 1 ]; then
+	git checkout -q "$BRANCH"
+	git fetch -q
+	git diff --pretty=format: --name-status "$BRANCH" origin/"$BRANCH" | sed "s/M\t/ Edit /g; s/A\t/ Checkout /g; s/D\t/ Delete /g" | sort
+	git clean -q -f
+	git reset -q --hard origin/"$BRANCH"
+else
+	git clone -q -b "$BRANCH" "$URL" "$REPOSITORY"
+	ls -1 $REPOSITORY | sed "s/^/ Checkout /"
+fi
+
+echo "Finished successfully"