Skip to content

Commit 5f46ac4

Browse files
✨ Adding uninstallLoopback.
1 parent 2f6dc53 commit 5f46ac4

File tree

2 files changed

+76
-22
lines changed

2 files changed

+76
-22
lines changed

cli/Valet/Site.php

Lines changed: 73 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,10 @@ function pruneLinks()
330330
/**
331331
* Resecure all currently secured sites with a fresh configuration.
332332
*
333+
* There are only two supported values: tld and loopback
334+
* And those must be submitted in pairs else unexpected results may occur.
335+
* eg: both $old and $new should contain the same indexes.
336+
*
333337
* @param array $old
334338
* @param array $new
335339
* @return void
@@ -765,37 +769,55 @@ function proxyDelete($url)
765769
function aliasLoopback($oldLoopback, $loopback)
766770
{
767771
if ($oldLoopback !== VALET_LOOPBACK) {
768-
$this->cli->run(sprintf(
769-
'sudo ifconfig lo0 -alias %s', $oldLoopback
770-
));
771-
772-
info('Old loopback interface alias removed ['.$oldLoopback.']');
772+
$this->removeLoopbackAlias($oldLoopback);
773773
}
774774

775775
if ($loopback !== VALET_LOOPBACK) {
776-
$this->cli->run(sprintf(
777-
'sudo ifconfig lo0 alias %s', $loopback
778-
));
779-
780-
info('New loopback interface alias added ['.$loopback.']');
776+
$this->addLoopbackAlias($loopback);
781777
}
782778

783-
$this->updatePlist($loopback);
779+
$this->updateLoopbackPlist($loopback);
784780
}
785781

786782
/**
787-
* Remove old LaunchDaemon and create a new one if necessary.
783+
* Remove loopback interface alias.
788784
*
789785
* @param string $loopback
790786
* @return void
791787
*/
792-
function updatePlist($loopback)
788+
function removeLoopbackAlias($loopback)
793789
{
794-
if ($this->files->exists($this->plistPath())) {
795-
$this->files->unlink($this->plistPath());
790+
$this->cli->run(sprintf(
791+
'sudo ifconfig lo0 -alias %s', $loopback
792+
));
796793

797-
info('Old plist file removed ['.$this->plistPath().']');
798-
}
794+
info('['.$loopback.'] loopback interface alias removed.');
795+
}
796+
797+
/**
798+
* Remove loopback interface alias.
799+
*
800+
* @param string $loopback
801+
* @return void
802+
*/
803+
function addLoopbackAlias($loopback)
804+
{
805+
$this->cli->run(sprintf(
806+
'sudo ifconfig lo0 alias %s', $loopback
807+
));
808+
809+
info('['.$loopback.'] loopback interface alias added.');
810+
}
811+
812+
/**
813+
* Remove old LaunchDaemon and create a new one if necessary.
814+
*
815+
* @param string $loopback
816+
* @return void
817+
*/
818+
function updateLoopbackPlist($loopback)
819+
{
820+
$this->removeLoopbackPlist();
799821

800822
if ($loopback !== VALET_LOOPBACK) {
801823
$this->files->put(
@@ -807,8 +829,36 @@ function updatePlist($loopback)
807829
)
808830
);
809831

810-
info('New plist file added ['.$this->plistPath().']');
832+
info('['.$this->plistPath().'] persistent loopback interface alias launch daemon added.');
833+
}
834+
}
835+
836+
/**
837+
* Remove loopback interface alias launch daemon plist file.
838+
*
839+
* @return void
840+
*/
841+
function removeLoopbackPlist()
842+
{
843+
if ($this->files->exists($this->plistPath())) {
844+
$this->files->unlink($this->plistPath());
845+
846+
info('['.$this->plistPath().'] persistent loopback interface alias launch daemon removed.');
847+
}
848+
}
849+
850+
/**
851+
* Remove loopback interface alias and launch daemon plist file for uninstall purpose.
852+
*
853+
* @return void
854+
*/
855+
function uninstallLoopback()
856+
{
857+
if (($loopback = $this->valetLoopback()) !== VALET_LOOPBACK) {
858+
$this->removeLoopbackAlias($loopback);
811859
}
860+
861+
$this->removeLoopbackPlist();
812862
}
813863

814864
function valetHomePath()
@@ -824,8 +874,11 @@ function valetLoopback()
824874
/**
825875
* Get the path to loopback LaunchDaemon.
826876
*
827-
* @return
828-
return '/Library/LaunchDaemons.plist';
877+
* @return string
878+
*/
879+
function plistPath()
880+
{
881+
return '/Library/LaunchDaemons/com.laravel.valet.loopback.plist';
829882
}
830883

831884
/**

cli/valet.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,7 @@
102102
}
103103

104104
if (filter_var($loopback, FILTER_VALIDATE_IP) === false) {
105-
warning('['.$loopback.'] is not a valid IP address');
106-
return 1;
105+
return warning('['.$loopback.'] is not a valid IP address');
107106
}
108107

109108
$oldLoopback = Configuration::read()['loopback'];
@@ -383,6 +382,8 @@
383382
Nginx::uninstall();
384383
info('Removing Dnsmasq and configs...');
385384
DnsMasq::uninstall();
385+
info('Removing loopback customization...');
386+
Site::uninstallLoopback();
386387
info('Removing Valet configs and customizations...');
387388
Configuration::uninstall();
388389
info('Removing PHP versions and configs...');

0 commit comments

Comments
 (0)