1 package Oyster::Deploy::Git;
5 #use Git::Wrapper; # sorry fails tests!
10 /usr/bin/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);
39 qx{cd $location ; git init};
41 open my $fh_post_receive, '>', "$location/.git/hooks/post-receive"
42 or die "Cannot write to " . "$location/.git/hooks/post-receive: $!";
43 print $fh_post_receive $post_receive;
44 close $fh_post_receive
45 or die "Cannot close " . "$location/.git/hooks/post-receive: $!";
47 open my $fh_post_update, '>', "$location/.git/hooks/post-update"
48 or die "Cannot write to " . "$location/.git/hooks/post-update: $!";
49 print $fh_post_update $post_update;
51 or die "Cannot close " . "$location/.git/hooks/post-update: $!";
53 chmod(0x755, ("$location/.git/hooks/post-receive", "$location/.git/hooks/post-update"));