about summary refs log tree commit diff
path: root/lib/jitterbug
diff options
context:
space:
mode:
authorJonathan "Duke" Leto <jonathan@leto.net>2011-05-23 16:48:33 -0700
committerJonathan "Duke" Leto <jonathan@leto.net>2011-05-23 16:48:33 -0700
commit8443ce457031e90025650264983ce06a18dfe645 (patch)
tree49d3e2f0feaafb303b6bbe0c70c360c30a7312a2 /lib/jitterbug
parentAdd a test to verify we get the expected sha1 (diff)
downloadjitterbug-8443ce457031e90025650264983ce06a18dfe645.tar.gz
Factor out git logic to separate function
Diffstat (limited to '')
-rw-r--r--lib/jitterbug/Builder.pm51
1 files changed, 28 insertions, 23 deletions
diff --git a/lib/jitterbug/Builder.pm b/lib/jitterbug/Builder.pm
index eb9f924..a70e560 100644
--- a/lib/jitterbug/Builder.pm
+++ b/lib/jitterbug/Builder.pm
@@ -80,30 +80,9 @@ sub sleep {
     sleep $interval;
 }
 
-sub run_task {
-    my ($self,$task)   = @_;
-
-    my $desc    = JSON::decode_json( $task->commit->content );
-    my $conf    = $self->{'conf'};
-    my $buildconf = $conf->{'jitterbug'}{'build_process'};
-    my $project = $task->project;
-
-    my $dt = DateTime->now();
-    $task->update({started_when => $dt});
-    $desc->{'build'}{'start_time'} = $dt->epoch;
-    debug("Build Start");
+sub _prepare_git_repo {
+    my ($self, $task, $buildconf, $build_dir) = @_;
 
-    my $report_path = dir(
-        $conf->{'jitterbug'}{'reports'}{'dir'},
-        $project->name,
-        $task->commit->sha256,
-    );
-    my $dir = $conf->{'jitterbug'}{'build'}{'dir'};
-    mkdir $dir unless -d $dir;
-
-    my $build_dir = dir($dir, $project->name);
-
-    my $r;
     my $repo    = $task->project->url;
     unless ($buildconf->{reuse_repo}) {
         debug("Removing $build_dir");
@@ -144,6 +123,32 @@ sub run_task {
     # TODO: this may fail on non-unixy systems
     system("git checkout " . $task->commit->sha256 . "&>/dev/null");
     chdir $pwd;
+}
+
+sub run_task {
+    my ($self,$task)   = @_;
+
+    my $desc    = JSON::decode_json( $task->commit->content );
+    my $conf    = $self->{'conf'};
+    my $buildconf = $conf->{'jitterbug'}{'build_process'};
+    my $project = $task->project;
+
+    my $dt = DateTime->now();
+    $task->update({started_when => $dt});
+    $desc->{'build'}{'start_time'} = $dt->epoch;
+    debug("Build Start");
+
+    my $report_path = dir(
+        $conf->{'jitterbug'}{'reports'}{'dir'},
+        $project->name,
+        $task->commit->sha256,
+    );
+    my $dir = $conf->{'jitterbug'}{'build'}{'dir'};
+    mkdir $dir unless -d $dir;
+
+    my $build_dir = dir($dir, $project->name);
+
+    $self->_prepare_git_repo($task, $buildconf, $build_dir);
 
     my $builder       =    $conf->{'jitterbug'}{'projects'}{$project->name}{'builder'}
                         || $conf->{'jitterbug'}{'build_process'}{'builder'};