From 016af85354e83228b693141ace022261d66f4e80 Mon Sep 17 00:00:00 2001
From: Jani Nikula <jani.nikula@intel.com>
Date: Thu, 6 Feb 2014 11:54:27 +0200
Subject: [PATCH] dim: let the user configure the prefix using $HOME/.dimrc

Defaults remain the same, but $HOME/.dimrc or environment may contain
configuration such as:

DIM_PREFIX=$HOME/src
---
 dim | 46 +++++++++++++++++++++++++++++++---------------
 1 file changed, 31 insertions(+), 15 deletions(-)

diff --git a/dim b/dim
index 93af859..2a95795 100755
--- a/dim
+++ b/dim
@@ -36,17 +36,33 @@
 # fail on any goof-up
 set -e
 
+#
+# User configuration. Set in environment or configuration file.
+#
+
+# dim configuration file
+DIM_CONFIG=${DIM_CONFIG:-$HOME/.dimrc}
+if [ -r $DIM_CONFIG ]; then
+    . $DIM_CONFIG
+fi
+
+# prefix for repo directories
+DIM_PREFIX=${DIM_PREFIX:-$HOME/linux}
+
+#
+# Internal configuration.
+#
+
 today=`date +%Y-%m-%d`
 nightly_branches="origin/drm-intel-next-queued origin/drm-intel-fixes"
 nightly_branches="$nightly_branches drm-upstream/drm-next drm-upstream/drm-fixes"
 nightly_branches="$nightly_branches origin/topic/core-stuff"
 
-prefix=~/linux
 drm_intel_git=ssh://git.freedesktop.org/git/drm-intel
 
 function update_linux_next
 {
-	cd $prefix/src
+	cd $DIM_PREFIX/src
 
 	if git grep "EXTRAVERSION.*=" origin/master Makefile | grep rc > /dev/null ; then
 		echo linux-next: -rc phase
@@ -96,7 +112,7 @@ function update_nightly
 	local time=`date +%Yy-%mm-%dd-%Hh-%Mm-%Ss`
 	local first=1
 
-	cd $prefix/$integration_branch
+	cd $DIM_PREFIX/$integration_branch
 	# git fetch returns 128 if there's nothing to be fetched
 	git fetch origin >& /dev/null || true
 	# don't auto-fetch drm-upstream to avoid including -rc1 too early
@@ -130,11 +146,11 @@ function update_nightly
 
 	git push origin +HEAD >& /dev/null && echo "$integration_branch branch successfully updated"
 
-	cd $prefix/drm-intel-rerere/
+	cd $DIM_PREFIX/drm-intel-rerere/
 	if git branch | grep rerere-cache | grep '\*' >& /dev/null ; then
 		git pull >& /dev/null
 		git rm *.patch >& /dev/null || true
-		cp $prefix/$integration_branch/.git/rr-cache/* rr-cache -r
+		cp $DIM_PREFIX/$integration_branch/.git/rr-cache/* rr-cache -r
 		cp ../$integration_branch*fixup.patch . >& /dev/null || true
 		git add *.patch >& /dev/null || true
 		git rm dim qf &> /dev/null || true
@@ -205,7 +221,7 @@ function prep_pull_mail
 
 function setup_dim
 {
-	cd $prefix
+	cd $DIM_PREFIX
 
 	drm_upstream_git=git://people.freedesktop.org/~airlied/linux
 
@@ -241,7 +257,7 @@ function setup_dim
 	fi
 }
 
-cd $prefix/src
+cd $DIM_PREFIX/src
 
 case "$1" in
 	setup)
@@ -254,7 +270,7 @@ case "$1" in
 		scp -r Documentation/DocBook/drm annarchy.freedesktop.org:~/public_html
 		;;
 	nightly-forget)
-		cd $prefix/drm-intel-nightly
+		cd $DIM_PREFIX/drm-intel-nightly
 		git fetch origin >& /dev/null
 		git reset --hard origin/drm-intel-next-queued >& /dev/null
 		git merge origin/drm-intel-fixes
@@ -262,7 +278,7 @@ case "$1" in
 		;;
 	update-branches|ub)
 		git fetch danvet
-		check_repo_clean $prefix/src Kernel
+		check_repo_clean $DIM_PREFIX/src Kernel
 		dim co
 		git rebase -i danvet/drm-intel-next-queued
 		dim cof
@@ -271,11 +287,11 @@ case "$1" in
 		git reset --hard danvet/drm-intel-next
 		# TODO: Restore -nightly merge state from the rerere-cache
 		# branch
-		test -d $prefix/drm-intel-rerere/ || mkdir ~/linux/drm-intel-rerere/
-		cd $prefix/drm-intel-rerere/
-		cp rr-cache/* $prefix/drm-intel-nightly/.git/rr-cache/ -r
-		rm $prefix/*fixup.patch &> /dev/null || true
-		cp *.patch $prefix &> /dev/null || true
+		test -d $DIM_PREFIX/drm-intel-rerere/ || mkdir $DIM_PREFIX/drm-intel-rerere/
+		cd $DIM_PREFIX/drm-intel-rerere/
+		cp rr-cache/* $DIM_PREFIX/drm-intel-nightly/.git/rr-cache/ -r
+		rm $DIM_PREFIX/*fixup.patch &> /dev/null || true
+		cp *.patch $DIM_PREFIX &> /dev/null || true
 		;;
 	rebuild-nightly)
 		update_nightly
@@ -409,7 +425,7 @@ case "$1" in
 		mutt -s '[PULL] topic' 'airlied' -c intel-gfx -c dri-devel -i ~/tmp/dim-pull-request
 		;;
 	update-next)
-		cd $prefix/src
+		cd $DIM_PREFIX/src
 		git fetch danvet
 		if ! git branch --merged danvet/drm-intel-nightly | grep drm-intel-fixes &> /dev/null ; then
 			echo "drm-intel-fixes not merged into -nigthly, please update!"
-- 
GitLab