From d1674bc27a08cee4fd60b5d2ea8163d8b92d5453 Mon Sep 17 00:00:00 2001 From: Ward Wouts Date: Sun, 25 Jan 2004 20:12:09 +0000 Subject: [PATCH] handle another permission case --- mycp/mycp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/mycp/mycp b/mycp/mycp index 4f7877d..2ace1f3 100755 --- a/mycp/mycp +++ b/mycp/mycp @@ -32,6 +32,7 @@ use vars qw( $cvspath $editor $catcmd + $chowncmd $cpcmd $cvscmd $mkdircmd @@ -43,6 +44,7 @@ $hostname = hostname(); #my $cvspath = "$ENV{HOME}/worktrees/systems/$hostname"; $editor = "vi"; $catcmd = "/bin/cat"; +$chowncmd = "/sbin/chown"; $cpcmd = "/bin/cp"; $cvscmd = "/usr/bin/cvs"; $mkdircmd = "/bin/mkdir"; @@ -292,7 +294,12 @@ sub copytocvs($) { my $file = shift; my $cwd = cwd; my $path = "$cvspath/" . &fullpath($file); - copy($file, $path); + if ( -r $file ) { + copy($file, $path) or die "Couldn't copy file: $!"; + } else { + system("$sudocmd $cpcmd $file $path"); + system("$sudocmd $chowncmd $<:" . (split(' ', $())[0] . " $path/" . basename($file)); + } chdir($path); system("$cvscmd ci " . &escape(basename($file))); chdir $cwd;