1 package Oyster::Deploy::Git;
10 env -i git reset --hard HEAD
11 dzil listdeps | xargs cpanm --local-lib=~/perl5
16 # This rather relies on being an account with permission to do this.
17 # Who does the script run as? Presumably the owner of the repo as git will
18 # use ssh-keys to get onto the server.
20 # Realistically that user needs to be put in /etc/sudoers
22 # user ALL=NOPASSWD: /etc/init.d/lighttpd
25 sudo /etc/init.d/lighttpd restart
32 if( -f $location || -d $location ) {
33 die("$location already exists");
37 my $git = Git::Wrapper->new($location);
40 open my $fh_post_receive, '>', $git->dir . '/.git/hooks/post-receive'
41 or die "Cannot write to " . $git->dir . '/.git/hooks/post-receive' . ": $!";
42 print $fh_post_receive $post_receive;
43 close $fh_post_receive
44 or die "Cannot close " . $git->dir . '/.git/hooks/post-receive' . ": $!";
46 open my $fh_post_update, '>', $git->dir . '/.git/hooks/post-update'
47 or die "Cannot write to " . $git->dir . '/.git/hooks/post-update' . ": $!";
48 print $fh_post_update $post_update;
50 or die "Cannot close " . $git->dir . '/.git/hooks/post-update' . ": $!";
52 chmod(0x755, ($git->dir . '.git/hooks/post-receive', $git->dir . '.git/hooks/post-update'));