private void OnExecute(IConsole console) { var dirPath = Environment.CurrentDirectory; var dirName = Path.GetFileName(dirPath); var defaultExtension = Config.Get("App", "VhostExtension"); var givenDomain = dirName.ToLower() + defaultExtension; if (Domain != null) { givenDomain = Domain; } // TODO: fix domain tld validator if (!Utilities.IsValidDomainName(givenDomain)) { ColorizeConsole.PrintlnError($"\n> Please specify a valid domain name!\n"); return; } var vhostFile = VirtualHost.ApacheVhostDir + @"\" + givenDomain + ".conf"; if (File.Exists(vhostFile)) { ColorizeConsole.PrintlnError($"\n> VirtualHost already exists!\n"); return; } ColorizeConsole.PrintlnInfo($"\n> Creating virtualhost ..."); VirtualHost.CreateCert(givenDomain); VirtualHost.CreateVhost(givenDomain, dirPath.Replace("\\", "/")); if (DnsHostfile.IsNotExists(givenDomain)) { DnsHostfile.AddRecord(givenDomain); } // TODO: services restart command still not working // ColorizeConsole.PrintlnInfo($"\n> Reloading services ..."); // Services.Reload(References.ServiceNameHttp); // Task.Delay(TimeSpan.FromSeconds(5)); ColorizeConsole.PrintlnSuccess($"\n> Virtualhost has been created, please restart Varlet services in VarletUi!"); ColorizeConsole.PrintlnWarning($"> Your site will be available at: http://{givenDomain} and https://{givenDomain}\n"); }
private void OnExecute(IConsole console) { var dirPath = Environment.CurrentDirectory; var dirName = Path.GetFileName(dirPath); var defaultExtension = Config.Get("App", "VhostExtension"); var givenDomain = dirName.ToLower() + defaultExtension; if (Domain != null) { givenDomain = Domain; } // TODO: fix domain tld validator if (!Utilities.IsValidDomainName(givenDomain)) { ColorizeConsole.PrintlnError($"\n> Please specify a valid domain name!\n"); return; } var vhostFile = VirtualHost.ApacheVhostDir + @"\" + givenDomain + ".conf"; if (!File.Exists(vhostFile)) { ColorizeConsole.PrintlnWarning($"\n> VirtualHost doesn't exists!\n"); return; } ColorizeConsole.PrintlnInfo($"\n> Removing virtualhost ..."); File.Delete(vhostFile); if (!DnsHostfile.IsNotExists(givenDomain)) { DnsHostfile.DeleteRecord(givenDomain); } // ColorizeConsole.PrintlnInfo($"\n> Reloading services ..."); // Services.Reload(References.ServiceNameHttp); // Task.Delay(TimeSpan.FromSeconds(5)); ColorizeConsole.PrintlnSuccess($"\n> Your site has been removed, please restart Varlet services in VarletUi!\n"); }
private static void AutoGenerateVhost() { // Remove old vhost var files = (new DirectoryInfo(VirtualHost.ApacheVhostDir)).GetFiles("auto.*.conf"); foreach (var file in files) { var domain = file.Name.Replace("auto.", "").Replace(".conf", ""); if (!DnsHostfile.IsNotExists(domain)) { DnsHostfile.DeleteRecord(domain); } File.Delete(file.FullName); } // Generate auto virtualhost var wwwDir = Config.Get("App", "DocumentRoot"); if (!Directory.Exists(wwwDir)) { return; } foreach (var dir in Directory.GetDirectories(wwwDir)) { var dirName = Path.GetFileName(dir); var dirPath = wwwDir + @"\" + dirName; var domain = dirName + Config.Get("App", "VhostExtension"); VirtualHost.CreateCert(domain); VirtualHost.CreateVhost(domain, dirPath, true); if (DnsHostfile.IsNotExists(domain)) { DnsHostfile.AddRecord(domain); } } VirtualHost.SetDefaultVhost(); System.Threading.Thread.Sleep(TimeSpan.FromSeconds(5)); }