1
0
mirror of https://github.com/laravel/valet.git synced 2026-02-07 09:10:03 +01:00

Unlink renamed links

This commit is contained in:
Antonio Carlos Ribeiro
2017-04-11 00:03:28 -03:00
parent 4743c118d6
commit b899a10d7a
2 changed files with 48 additions and 4 deletions

View File

@@ -22,6 +22,43 @@ function __construct(Configuration $config, CommandLine $cli, Filesystem $files)
$this->config = $config; $this->config = $config;
} }
/**
* Get the name of the site.
*
* @param string|null $name
* @return string
*/
private function getRealSiteName($name)
{
if (! is_null($name)) {
return $name;
}
if (is_string($link = $this->getLinkNameByCurrentDir())) {
return $link;
}
return basename(getcwd());
}
/**
* Get link name based on the current directory.
*
* @return null|string
*/
private function getLinkNameByCurrentDir()
{
$count = count($links = $this->links()->where('path', getcwd()));
if ($count == 1) {
return $links->shift()['site'];
}
if ($count > 1) {
throw new DomainException("There are {$count} links related to the current directory, please specify the name: valet unlink <name>.");
}
}
/** /**
* Get the real hostname for the given path, checking links. * Get the real hostname for the given path, checking links.
* *
@@ -106,7 +143,12 @@ function getLinks($path, $certs)
$secured = $certs->has($site); $secured = $certs->has($site);
$url = ($secured ? 'https': 'http').'://'.$site.'.'.$config['domain']; $url = ($secured ? 'https': 'http').'://'.$site.'.'.$config['domain'];
return [$site, $secured ? ' X': '', $url, $path]; return [
'site' => $site,
'secured' => $secured ? ' X': '',
'url' => $url,
'path' => $path,
];
}); });
} }
@@ -118,9 +160,13 @@ function getLinks($path, $certs)
*/ */
function unlink($name) function unlink($name)
{ {
$name = $this->getRealSiteName($name);
if ($this->files->exists($path = $this->sitesPath().'/'.$name)) { if ($this->files->exists($path = $this->sitesPath().'/'.$name)) {
$this->files->unlink($path); $this->files->unlink($path);
} }
return $name;
} }
/** /**

View File

@@ -112,9 +112,7 @@
* Unlink a link from the Valet links directory. * Unlink a link from the Valet links directory.
*/ */
$app->command('unlink [name]', function ($name) { $app->command('unlink [name]', function ($name) {
Site::unlink($name = $name ?: basename(getcwd())); info('The ['.Site::unlink($name).'] symbolic link has been removed.');
info('The ['.$name.'] symbolic link has been removed.');
})->descriptions('Remove the specified Valet link'); })->descriptions('Remove the specified Valet link');
/** /**