From e9de7f196a3b998952e8f62acb04a18d9f087d8a Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 12 Oct 2007 15:57:44 -0400 Subject: [PATCH] use newlines to separate shell command lines No more need to fiddle around with adding semicolons after certian shell lines. --- TODO | 2 +- debian/rules | 2 +- mr | 142 +++++++++++++++++++++++++-------------------------- mrconfig | 59 ++++++++++++++++----- 4 files changed, 120 insertions(+), 85 deletions(-) diff --git a/TODO b/TODO index 62df27e..d12dbd2 100644 --- a/TODO +++ b/TODO @@ -19,7 +19,7 @@ repo still exists on disk that it is no longer managed. [src/foo/baz] - deleted = yes + deleted = true * mr register diff --git a/debian/rules b/debian/rules index 41d2804..9a7e694 100755 --- a/debian/rules +++ b/debian/rules @@ -15,7 +15,7 @@ binary-indep: build dh_testroot dh_clean -k dh_install mr usr/bin - dh_installdocs README + dh_installdocs README TODO dh_installexamples mrconfig dh_installman *.1 dh_installchangelogs diff --git a/mr b/mr index 314de60..bed4cac 100755 --- a/mr +++ b/mr @@ -284,7 +284,7 @@ sub action { my ($action, $dir, $topdir, $subdir) = @_; my $lib= exists $config{$topdir}{$subdir}{lib} ? - $config{$topdir}{$subdir}{lib} : ""; + $config{$topdir}{$subdir}{lib}."\n" : ""; if ($action eq 'checkout') { if (-d $dir) { @@ -304,7 +304,7 @@ sub action { if (exists $config{$topdir}{$subdir}{skip}) { my $test="set -e;".$lib.$config{$topdir}{$subdir}{skip}; - print "mr $action: running skip test $test\n" if $verbose; + print "mr $action: running skip test >>$test<<\n" if $verbose; my $ret=system($test); if ($ret >> 8 == 0) { print "mr $action: $dir skipped per config file\n" if $verbose; @@ -329,9 +329,9 @@ sub action { print "mr $action: $topdir$subdir (in subdir $directory)\n"; } my $command="set -e; ".$lib. - "my_action(){ $config{$topdir}{$subdir}{$action} ; }; my_action ". + "my_action(){ $config{$topdir}{$subdir}{$action}\n }; my_action ". join(" ", map { s/\//\/\//g; s/"/\"/g; '"'.$_.'"' } @ARGV); - print STDERR "mr $action: running $command\n" if $verbose; + print STDERR "mr $action: running >>$command<<\n" if $verbose; my $ret=system($command); if ($ret != 0) { print STDERR "mr $action: failed ($ret)\n" if $verbose; @@ -427,8 +427,8 @@ sub loadconfig { my $value=$2; # continuation line - while ($value=~/(.*)\\$/) { - $value=$1.<$in>; + while ($value=~/(.*)\\$/s) { + $value=$1."\n".<$in>; chomp $value; } @@ -445,7 +445,7 @@ sub loadconfig { $alias{$parameter}=$value; } elsif ($parameter eq 'lib') { - $config{$dir}{$section}{lib}.=$value." ; "; + $config{$dir}{$section}{lib}.=$value."\n"; } else { $config{$dir}{$section}{$parameter}=$value; @@ -478,79 +478,79 @@ __DATA__ ls = list [DEFAULT] -lib = \ - error() { \ - echo "mr: $@" >&2; \ - exit 1; \ +lib = \ + error() { \ + echo "mr: $@" >&2 \ + exit 1 \ } -update = \ - if [ -d "$MR_REPO"/.svn ]; then \ - svn update "$@"; \ - elif [ -d "$MR_REPO"/.git ]; then \ - git pull origin master "$@"; \ - elif [ -d "$MR_REPO"/.bzr ]; then \ - bzr merge "$@"; \ - elif [ -d "$MR_REPO"/CVS ]; then \ - cvs update "$@"; \ - else \ - error "unknown repo type"; \ +update = \ + if [ -d "$MR_REPO"/.svn ]; then \ + svn update "$@" \ + elif [ -d "$MR_REPO"/.git ]; then \ + git pull origin master "$@" \ + elif [ -d "$MR_REPO"/.bzr ]; then \ + bzr merge "$@" \ + elif [ -d "$MR_REPO"/CVS ]; then \ + cvs update "$@" \ + else \ + error "unknown repo type" \ fi -status = \ - if [ -d "$MR_REPO"/.svn ]; then \ - svn status "$@"; \ - elif [ -d "$MR_REPO"/.git ]; then \ - git status "$@" || true; \ - elif [ -d "$MR_REPO"/.bzr ]; then \ - bzr status "$@"; \ - elif [ -d "$MR_REPO"/CVS ]; then \ - cvs status "$@"; \ - else \ - error "unknown repo type"; \ +status = \ + if [ -d "$MR_REPO"/.svn ]; then \ + svn status "$@" \ + elif [ -d "$MR_REPO"/.git ]; then \ + git status "$@" || true \ + elif [ -d "$MR_REPO"/.bzr ]; then \ + bzr status "$@" \ + elif [ -d "$MR_REPO"/CVS ]; then \ + cvs status "$@" \ + else \ + error "unknown repo type" \ fi -commit = \ - if [ -d "$MR_REPO"/.svn ]; then \ - svn commit "$@"; \ - elif [ -d "$MR_REPO"/.git ]; then \ - git commit -a "$@" && git push --all; \ - elif [ -d "$MR_REPO"/.bzr ]; then \ - bzr commit "$@" && bzr push; \ - elif [ -d "$MR_REPO"/CVS ]; then \ - cvs commit "$@"; \ - else \ - error "unknown repo type"; \ +commit = \ + if [ -d "$MR_REPO"/.svn ]; then \ + svn commit "$@" \ + elif [ -d "$MR_REPO"/.git ]; then \ + git commit -a "$@" && git push --all \ + elif [ -d "$MR_REPO"/.bzr ]; then \ + bzr commit "$@" && bzr push \ + elif [ -d "$MR_REPO"/CVS ]; then \ + cvs commit "$@" \ + else \ + error "unknown repo type" \ fi -diff = \ - if [ -d "$MR_REPO"/.svn ]; then \ - svn diff "$@"; \ - elif [ -d "$MR_REPO"/.git ]; then \ - git diff "$@"; \ - elif [ -d "$MR_REPO"/.bzr ]; then \ - bzr diff "$@"; \ - elif [ -d "$MR_REPO"/CVS ]; then \ - cvs diff "$@"; \ - else \ - error "unknown repo type"; \ +diff = \ + if [ -d "$MR_REPO"/.svn ]; then \ + svn diff "$@" \ + elif [ -d "$MR_REPO"/.git ]; then \ + git diff "$@" \ + elif [ -d "$MR_REPO"/.bzr ]; then \ + bzr diff "$@" \ + elif [ -d "$MR_REPO"/CVS ]; then \ + cvs diff "$@" \ + else \ + error "unknown repo type" \ fi -log = \ - if [ -d "$MR_REPO"/.svn ]; then \ - svn log"$@"; \ - elif [ -d "$MR_REPO"/.git ]; then \ - git log "$@"; \ - elif [ -d "$MR_REPO"/.bzr ]; then \ - bzr log "$@"; \ - elif [ -d "$MR_REPO"/CVS ]; then \ - cvs log "$@"; \ - else \ - error "unknown repo type"; \ +log = \ + if [ -d "$MR_REPO"/.svn ]; then \ + svn log"$@" \ + elif [ -d "$MR_REPO"/.git ]; then \ + git log "$@" \ + elif [ -d "$MR_REPO"/.bzr ]; then \ + bzr log "$@" \ + elif [ -d "$MR_REPO"/CVS ]; then \ + cvs log "$@" \ + else \ + error "unknown repo type" \ fi list = true -help = \ - if [ ! -e "$MR_PATH" ]; then \ - error "cannot find program path";\ - fi; \ - (pod2man -c mr "$MR_PATH" | man -l -) || \ +help = \ + if [ ! -e "$MR_PATH" ]; then \ + error "cannot find program path" \ + fi \ + (pod2man -c mr "$MR_PATH" | man -l -) || \ error "pod2man or man failed" ed = echo "A horse is a horse, of course, of course.." diff --git a/mrconfig b/mrconfig index c86c936..38ccfbb 100644 --- a/mrconfig +++ b/mrconfig @@ -6,22 +6,33 @@ cleanup = if [ -d "$MR_REPO"/.svn ]; then svn cleanup ; fi # Tests used in the skips below. # - wantsrc checks whether I probably want a full source checkout (quite # large) +# - private are hosts I trust private data to # - mylaptop only succeeds if it's on my main development laptop, which # gets lots of extra cruft # - kite only succeeds on kite -lib = \ - wantsrc() { \ - test "$(whoami)" = joey; \ - }; \ - mylaptop() { \ - test "$(hostname)" = kodama; \ - }; \ - kite() { \ - test "$(hostname)" = wren; \ +lib = \ + wantsrc() { \ + test "$(whoami)" = joey \ + } \ + private() { \ + if [ "$(whoami)" = joey ]; then \ + case "$(hostname)" in \ + wren|kodama|dragon|dodo|bluebird) \ + return 0 \ + ;; \ + esac \ + fi \ + return 1 \ + } \ + mylaptop() { \ + test "$(hostname)" = kodama \ + } \ + kite() { \ + test "$(hostname)" = wren \ } [src/mr] -checkout = git clone ssh://kitenet.net/srv/git/kitenet.net/mr +checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/mr skip = ! wantsrc [src/linux-2.6] @@ -33,7 +44,7 @@ skip = ! mylaptop || ! wantsrc checkout = \ git clone git://git.debian.org/git/dpkg/dpkg.git && \ cd dpkg && \ - git remote add kite ssh://kitenet.net/srv/git/kitenet.net/dpkg && \ + git remote add kite ssh://git.kitenet.net/srv/git/kitenet.net/dpkg && \ git fetch kite && \ git checkout -b sourcev3 kite/sourcev3 update = git pull origin master && git pull kite sourcev3 @@ -51,8 +62,32 @@ update = echo "skipping cvs update (too slow)" status = echo "skipping cvs status (too ugly)" skip = ! mylaptop || ! wantsrc +[src/packages/uqm] +checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/uqm +skip = ! wantsrc + +[src/packages/uqm-content] +checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/uqm-content +skip = ! wantsrc + +[src/packages/uqm-voice] +checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/uqm-voice +skip = ! wantsrc + +[src/packages/uqm-music] +checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/uqm-music +skip = ! wantsrc + # My home directory, which I keep in svn. [] -checkout = svn co svn+ssh://svn.kitenet.net/srv/svn/joey/trunk/home-$(hostname) $HOME +checkout = svn co svn+ssh://svn.kitenet.net/srv/svn/joey/trunk/home-$(hostname) joey # run svnfix after each update update = svn update && svnfix + +[mail] +checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/joey/private/mail +skip = ! private + +[doc] +checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/joey/private/doc +skip = ! private -- 2.39.5