summaryrefslogtreecommitdiff
path: root/bin/src-register-all
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2017-02-16 11:16:08 -0700
committerSean Whitton <spwhitton@spwhitton.name>2017-02-16 11:20:35 -0700
commitaaa7e6437afe4bcc0be861d3914693182e55c30e (patch)
tree06a943aad6f5e09ea2a2badcc9b1b457cb69fd52 /bin/src-register-all
parentb8423670b74b50d06925774d9461000595d42fb5 (diff)
downloaddotfiles-aaa7e6437afe4bcc0be861d3914693182e55c30e.tar.gz
factor src-register-all out of sysmaint
Diffstat (limited to 'bin/src-register-all')
-rwxr-xr-xbin/src-register-all22
1 files changed, 22 insertions, 0 deletions
diff --git a/bin/src-register-all b/bin/src-register-all
new file mode 100755
index 00000000..33348794
--- /dev/null
+++ b/bin/src-register-all
@@ -0,0 +1,22 @@
+#!/usr/bin/perl
+
+# Add new all new git/hg repos in ~/src to ~/src/.mrconfig
+
+use strict;
+use warnings;
+use File::Basename;
+use File::Grep "fgrep";
+use File::chdir;
+
+foreach my $f ( glob "$ENV{'HOME'}/src/*" ) {
+ my $short = basename($f);
+ next unless ( -d "$f/.git" || -d "$f/.hg" );
+ unless ( (fgrep { /^\[$short\]$/ }
+ "$ENV{'HOME'}/src/.mrconfig")
+ || (fgrep { /^\[\$HOME\/src\/$short\]$/ }
+ "$ENV{'HOME'}/.mrconfig") ) {
+ local $CWD = $f;
+ system "mr register >/dev/null";
+ die "failed to register ~/src/$short" unless ($? >> 8 == 0);
+ }
+}