diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/phorkie/Forker.php | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/phorkie/Forker.php b/src/phorkie/Forker.php index f293455..7473f16 100644 --- a/src/phorkie/Forker.php +++ b/src/phorkie/Forker.php @@ -32,15 +32,22 @@ class Forker //VersionControl_Git wants an existing dir, git clone not \rmdir($new->gitDir); - $vc->getCommand('clone') + $cmd = $vc->getCommand('clone') //this should be setOption, but it fails with a = between name and value ->addArgument('--separate-git-dir') ->addArgument( $GLOBALS['phorkie']['cfg']['gitdir'] . '/' . $new->id . '.git' ) ->addArgument($pathOrUrl) - ->addArgument($new->workDir) - ->execute(); + ->addArgument($new->workDir); + try { + $cmd->execute(); + } catch (\Exception $e) { + //clean up, we've got no workdir otherwise + $new->delete(); + throw $e; + } + foreach (\glob($new->gitDir . '/hooks/*') as $hookfile) { \unlink($hookfile); } |
