Skip to content
Snippets Groups Projects

Merging develop into main

Merged jurgenhaas requested to merge develop into main
2 files
+ 68
16
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 49
11
@@ -2,14 +2,12 @@
namespace LakeDrops\DorgFlow;
use Exception;
use GitElephant\Command\ResetCommand;
use GitElephant\Repository;
use LakeDrops\Component\Composer\BaseHandler;
use Symfony\Component\Filesystem\Filesystem;
/**
* Class Handler.
* Handler class for the Dorgflow plugin.
*
* @package LakeDrops\DorgFlow
*/
@@ -50,10 +48,10 @@ class Handler extends BaseHandler {
$installationManager = $this->composer->getInstallationManager();
foreach ([
'projects' => 'git.drupal.org:project',
'drupalspoons' => 'gitlab.com:drupalspoons',
'selfhosted' => FALSE,
] as $type => $url) {
'projects' => 'git.drupal.org:project',
'drupalspoons' => 'gitlab.com:drupalspoons',
'selfhosted' => FALSE,
] as $type => $url) {
if ($this->config->readValue($type) === NULL) {
continue;
}
@@ -86,7 +84,9 @@ class Handler extends BaseHandler {
}
$path = $installationManager->getInstallPath($package);
$this->io->write("- $project => $path", TRUE);
$this->keepObjects($project);
$this->prepareWorkingDirectory($path, $projectname, $version, $fullUrl);
$this->restoreObjects($project);
}
}
}
@@ -112,11 +112,12 @@ class Handler extends BaseHandler {
try {
$origin = $repository->getRemote('origin', FALSE);
if ($origin && $origin->getFetchURL() === $uri) {
if ($origin->getFetchURL() === $uri) {
// Already setup correctly.
return;
}
} catch (Exception $ex) {
}
catch (\Exception $ex) {
// Ignore the exception and conitue setup.
}
@@ -177,12 +178,13 @@ class Handler extends BaseHandler {
$repository = Repository::open($path);
try {
$origin = $repository->getRemote($remote, FALSE);
if ($origin && $origin->getFetchURL() === $uri) {
if ($origin->getFetchURL() === $uri) {
// Already setup correctly.
$this->io->write('Already available.');
return;
}
} catch (Exception $ex) {
}
catch (\Exception $ex) {
// Ignore the exception and conitue setup.
}
$repository->addRemote($remote, $uri);
@@ -190,4 +192,40 @@ class Handler extends BaseHandler {
$this->io->write('Successfully added issue fork.');
}
/**
* Move files and directories to keep to the /tmp directory.
*
* @param string $project
* The project name.
*/
private function keepObjects(string $project): void {
if ($objects = $this->config->readValue(['keep', $project])) {
$fs = new Filesystem();
foreach ($objects as $id => $object) {
if (file_exists($object)) {
$this->io->write(' - keeping ' . $object);
$fs->rename($object, '/tmp/dorgflow-keep-' . $id, TRUE);
}
}
}
}
/**
* Move files and directories to keep from the /tmp directory.
*
* @param string $project
* The project name.
*/
private function restoreObjects(string $project): void {
if ($objects = $this->config->readValue(['keep', $project])) {
$fs = new Filesystem();
foreach ($objects as $id => $object) {
if (file_exists('/tmp/dorgflow-keep-' . $id)) {
$this->io->write(' - restoring ' . $object);
$fs->rename('/tmp/dorgflow-keep-' . $id, $object, TRUE);
}
}
}
}
}
Loading