Commit | Line | Data |
6b832bd6 |
1 | package Oyster::Deploy::Git; |
2 | |
3 | use Moose; |
4 | use Git::Wrapper; |
5 | use Error::Simple; |
6 | |
7 | use Data::Dumper; |
8 | use File::Copy; |
9 | use File::ShareDir ':ALL'; |
10 | |
11 | sub create { |
12 | my $self = shift; |
13 | my $location = shift; |
14 | |
15 | |
16 | if( -f $location || -d $location ) { |
17 | Error::Simple->throw("$location already exists"); |
18 | } |
19 | |
20 | mkdir($location); |
21 | my $git = Git::Wrapper->new($location); |
22 | |
23 | my $postreceive = module_file('Oyster::Deploy::Git', '../share/deploy/git/post-receive'); |
24 | my $postupdate = module_file('Oyster::Deploy::Git', '../share/deploy/git/post-update'); |
25 | |
26 | copy($postreceive, ($git->dir . '.git/hooks/')) |
27 | or Error::Simple->throw('Creating post commit hooks failed.'); |
28 | copy($postupdate, ($git->dir . '.git/hooks/')) |
29 | or Error::Simple->throw('Creating post commit hooks failed.'); |
30 | |
31 | chmod(0x755, ('./bin/git/hooks/post-receive', './bin/git/hooks/post-update')); |
32 | |
33 | return 1; |
34 | } |
35 | |
36 | |
37 | 1; |