#!/usr/bin/perl
use strict;
use warnings;
use Pid::File::Flock;
use File::Basename;

die "Usage: ".basename($0)." url_to_mirror repos_dir\n" if scalar(@ARGV) < 2;
my ($url, $dest) = @ARGV;
Pid::File::Flock->new(name => basename($0));

if (not -d "$dest/".basename($url)) {
  chdir $dest;
  system("git clone -v --mirror '$url'") == 0 or die "can't clone repo $url";
}
else {
  chdir "$dest/".basename($url);
  system("git fetch -v --prune") == 0 or die "can't fetch repo $url";
}
open(my $fh, ">", "/var/spool/".basename($0).".".basename($url)) or die "cannot open status file: $!";
print $fh "ok\n";
