1
0
mirror of https://github.com/nicoverbruggen/phpmon.git synced 2025-08-07 03:50:08 +02:00

👌 Read configuration from JSON file

This allows us to alter the configuration prior to launching the app,
which allows for additional flexibility during testing.
This commit is contained in:
2022-10-16 14:35:19 +02:00
parent 273070ef27
commit 5e3e0c087b
16 changed files with 602 additions and 102 deletions

View File

@ -500,8 +500,6 @@
C4ACA38F25C754C100060C66 /* PhpExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4ACA38E25C754C100060C66 /* PhpExtension.swift */; };
C4AD38B228ECD9D300FA8D83 /* TestableFileSystem.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4AD38B128ECD9D300FA8D83 /* TestableFileSystem.swift */; };
C4AD38B328ECD9D300FA8D83 /* TestableFileSystem.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4AD38B128ECD9D300FA8D83 /* TestableFileSystem.swift */; };
C4AD38B528ECE2DB00FA8D83 /* brew-formula.json in Resources */ = {isa = PBXBuildFile; fileRef = C43A8A1F25D9D1D700591B77 /* brew-formula.json */; };
C4AD38B628ECE56D00FA8D83 /* TestableConfigurations.swift in Sources */ = {isa = PBXBuildFile; fileRef = C40F505428ECA64E004AD45B /* TestableConfigurations.swift */; };
C4AF9F72275445FF00D44ED0 /* valet-config.json in Resources */ = {isa = PBXBuildFile; fileRef = C4AF9F70275445FF00D44ED0 /* valet-config.json */; };
C4AF9F78275447F100D44ED0 /* ValetConfigurationTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4AF9F76275447F100D44ED0 /* ValetConfigurationTest.swift */; };
C4AF9F7A2754499000D44ED0 /* Valet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4AF9F792754499000D44ED0 /* Valet.swift */; };
@ -568,6 +566,30 @@
C4DEB7D427A5D60B00834718 /* Stats.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4DEB7D327A5D60B00834718 /* Stats.swift */; };
C4E0F7ED27BEBDA9007475F2 /* NSWindowExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E0F7EC27BEBDA9007475F2 /* NSWindowExtension.swift */; };
C4E0F7EE27BEBDA9007475F2 /* NSWindowExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E0F7EC27BEBDA9007475F2 /* NSWindowExtension.swift */; };
C4E2E84828FC1D93003B070C /* TestableConfigurationTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E2E84628FC1D8C003B070C /* TestableConfigurationTest.swift */; };
C4E2E84A28FC1E70003B070C /* DataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E2E84928FC1E70003B070C /* DataExtension.swift */; };
C4E2E84B28FC1E70003B070C /* DataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E2E84928FC1E70003B070C /* DataExtension.swift */; };
C4E2E84C28FC1E70003B070C /* DataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E2E84928FC1E70003B070C /* DataExtension.swift */; };
C4E2E84D28FC1E70003B070C /* DataExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E2E84928FC1E70003B070C /* DataExtension.swift */; };
C4E2E84F28FC22E4003B070C /* brew-formula.json in Resources */ = {isa = PBXBuildFile; fileRef = C43A8A1F25D9D1D700591B77 /* brew-formula.json */; };
C4E2E85028FC22E4003B070C /* brew-formula.json in Resources */ = {isa = PBXBuildFile; fileRef = C43A8A1F25D9D1D700591B77 /* brew-formula.json */; };
C4E2E85428FC256B003B070C /* brew-services-sudo.json in Resources */ = {isa = PBXBuildFile; fileRef = C4E2E85128FC256B003B070C /* brew-services-sudo.json */; };
C4E2E85528FC256B003B070C /* brew-services-sudo.json in Resources */ = {isa = PBXBuildFile; fileRef = C4E2E85128FC256B003B070C /* brew-services-sudo.json */; };
C4E2E85628FC256B003B070C /* brew-services-sudo.json in Resources */ = {isa = PBXBuildFile; fileRef = C4E2E85128FC256B003B070C /* brew-services-sudo.json */; };
C4E2E85828FC256B003B070C /* brew-services-normal.json in Resources */ = {isa = PBXBuildFile; fileRef = C4E2E85228FC256B003B070C /* brew-services-normal.json */; };
C4E2E85928FC256B003B070C /* brew-services-normal.json in Resources */ = {isa = PBXBuildFile; fileRef = C4E2E85228FC256B003B070C /* brew-services-normal.json */; };
C4E2E85A28FC256B003B070C /* brew-services-normal.json in Resources */ = {isa = PBXBuildFile; fileRef = C4E2E85228FC256B003B070C /* brew-services-normal.json */; };
C4E2E85C28FC282B003B070C /* TestableConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E2E85B28FC282B003B070C /* TestableConfiguration.swift */; };
C4E2E85D28FC282B003B070C /* TestableConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E2E85B28FC282B003B070C /* TestableConfiguration.swift */; };
C4E2E85E28FC282B003B070C /* TestableConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E2E85B28FC282B003B070C /* TestableConfiguration.swift */; };
C4E2E85F28FC282B003B070C /* TestableConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E2E85B28FC282B003B070C /* TestableConfiguration.swift */; };
C4E2E86128FC28A6003B070C /* brew-services.json in Resources */ = {isa = PBXBuildFile; fileRef = C4F30B06278E195800755FCE /* brew-services.json */; };
C4E2E86228FC28A6003B070C /* brew-services.json in Resources */ = {isa = PBXBuildFile; fileRef = C4F30B06278E195800755FCE /* brew-services.json */; };
C4E2E86528FC2F1B003B070C /* XCPMApplication.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E2E86328FC2F1B003B070C /* XCPMApplication.swift */; };
C4E2E86628FC2F1B003B070C /* XCPMApplication.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E2E86328FC2F1B003B070C /* XCPMApplication.swift */; };
C4E2E86728FC2F1B003B070C /* XCPMApplication.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E2E86328FC2F1B003B070C /* XCPMApplication.swift */; };
C4E2E86928FC3002003B070C /* Utility.swift in Sources */ = {isa = PBXBuildFile; fileRef = C43A8A1925D9CD1000591B77 /* Utility.swift */; };
C4E2E86A28FC3002003B070C /* Utility.swift in Sources */ = {isa = PBXBuildFile; fileRef = C43A8A1925D9CD1000591B77 /* Utility.swift */; };
C4E4404627C56F4700D225E1 /* ValetSite.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E4404527C56F4700D225E1 /* ValetSite.swift */; };
C4E4404727C56F4700D225E1 /* ValetSite.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E4404527C56F4700D225E1 /* ValetSite.swift */; };
C4E49DE728F764050026AC4E /* ActiveCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E49DE628F764050026AC4E /* ActiveCommand.swift */; };
@ -815,6 +837,12 @@
C4D9F24A280B69E100DCD39A /* AddProxyVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddProxyVC.swift; sourceTree = "<group>"; };
C4DEB7D327A5D60B00834718 /* Stats.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Stats.swift; sourceTree = "<group>"; };
C4E0F7EC27BEBDA9007475F2 /* NSWindowExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NSWindowExtension.swift; sourceTree = "<group>"; };
C4E2E84628FC1D8C003B070C /* TestableConfigurationTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestableConfigurationTest.swift; sourceTree = "<group>"; };
C4E2E84928FC1E70003B070C /* DataExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataExtension.swift; sourceTree = "<group>"; };
C4E2E85128FC256B003B070C /* brew-services-sudo.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "brew-services-sudo.json"; sourceTree = "<group>"; };
C4E2E85228FC256B003B070C /* brew-services-normal.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "brew-services-normal.json"; sourceTree = "<group>"; };
C4E2E85B28FC282B003B070C /* TestableConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestableConfiguration.swift; sourceTree = "<group>"; };
C4E2E86328FC2F1B003B070C /* XCPMApplication.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XCPMApplication.swift; sourceTree = "<group>"; };
C4E4404527C56F4700D225E1 /* ValetSite.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ValetSite.swift; sourceTree = "<group>"; };
C4E49DE628F764050026AC4E /* ActiveCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActiveCommand.swift; sourceTree = "<group>"; };
C4E49DE928F7643D0026AC4E /* CommandProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandProtocol.swift; sourceTree = "<group>"; };
@ -1176,6 +1204,8 @@
C459B4BF27F6094100E9B4B4 /* brew */ = {
isa = PBXGroup;
children = (
C4E2E85228FC256B003B070C /* brew-services-normal.json */,
C4E2E85128FC256B003B070C /* brew-services-sudo.json */,
C43A8A1F25D9D1D700591B77 /* brew-formula.json */,
C4F30B06278E195800755FCE /* brew-services.json */,
);
@ -1220,6 +1250,7 @@
C471E6DB28F9AFD10021E251 /* Command */,
C471E6DA28F9AFCB0021E251 /* Filesystem */,
C413E43328DA3E8F00AE33C7 /* Shell */,
C4E2E84628FC1D8C003B070C /* TestableConfigurationTest.swift */,
);
path = Testables;
sourceTree = "<group>";
@ -1241,6 +1272,7 @@
C471E79628F9B4260021E251 /* tests */ = {
isa = PBXGroup;
children = (
C4E2E86828FC2FF2003B070C /* Shared */,
C471E79228F9B1D30021E251 /* PHP Monitor.xctestplan */,
C4F7807A25D7F84B000DBC97 /* unit */,
C471E7AE28F9B4940021E251 /* feature */,
@ -1534,6 +1566,16 @@
path = Switcher;
sourceTree = "<group>";
};
C4E2E86828FC2FF2003B070C /* Shared */ = {
isa = PBXGroup;
children = (
C4E2E86328FC2F1B003B070C /* XCPMApplication.swift */,
C40F505428ECA64E004AD45B /* TestableConfigurations.swift */,
C43A8A1925D9CD1000591B77 /* Utility.swift */,
);
path = Shared;
sourceTree = "<group>";
};
C4E49DE528F763E20026AC4E /* Command */ = {
isa = PBXGroup;
children = (
@ -1576,7 +1618,6 @@
C4F7807A25D7F84B000DBC97 /* unit */ = {
isa = PBXGroup;
children = (
C43A8A1925D9CD1000591B77 /* Utility.swift */,
C471E6D928F9AFC20021E251 /* Testables */,
C40C7F1C27720E1400DDDCDC /* Test Files */,
C4C1019927C65A4D001FACC2 /* Commands */,
@ -1599,10 +1640,10 @@
C4F787A728EF812600790735 /* Testables */ = {
isa = PBXGroup;
children = (
C40F505428ECA64E004AD45B /* TestableConfigurations.swift */,
C46EBC4928DB966A007ACC74 /* TestableShell.swift */,
C4AD38B128ECD9D300FA8D83 /* TestableFileSystem.swift */,
C4E49DEC28F764A00026AC4E /* TestableCommand.swift */,
C4E2E85B28FC282B003B070C /* TestableConfiguration.swift */,
);
path = Testables;
sourceTree = "<group>";
@ -1618,6 +1659,7 @@
C4E0F7EC27BEBDA9007475F2 /* NSWindowExtension.swift */,
C4EB53E628553117006F9937 /* ArrayExtension.swift */,
C44B3A4528E5C70100718CB1 /* TimeIntervalExtension.swift */,
C4E2E84928FC1E70003B070C /* DataExtension.swift */,
);
path = Extensions;
sourceTree = "<group>";
@ -1762,7 +1804,6 @@
54FCFD26276C883F004CE748 /* SelectPreferenceView.xib in Resources */,
C473319F2470923A009A0597 /* Localizable.strings in Resources */,
C4068CA427B0780A00544CD5 /* CheckboxPreferenceView.xib in Resources */,
C4AD38B528ECE2DB00FA8D83 /* brew-formula.json in Resources */,
54FCFD2D276C8D67004CE748 /* HotkeyPreferenceView.xib in Resources */,
C405A4D024B9B9140062FAFA /* InternetAccessPolicy.strings in Resources */,
);
@ -1772,6 +1813,10 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
C4E2E85528FC256B003B070C /* brew-services-sudo.json in Resources */,
C4E2E85928FC256B003B070C /* brew-services-normal.json in Resources */,
C4E2E84F28FC22E4003B070C /* brew-formula.json in Resources */,
C4E2E86228FC28A6003B070C /* brew-services.json in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -1779,6 +1824,10 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
C4E2E85628FC256B003B070C /* brew-services-sudo.json in Resources */,
C4E2E85A28FC256B003B070C /* brew-services-normal.json in Resources */,
C4E2E85028FC22E4003B070C /* brew-formula.json in Resources */,
C4E2E86128FC28A6003B070C /* brew-services.json in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -1794,12 +1843,14 @@
C44F868E2835BD8D005C353A /* phpmon-config.json in Resources */,
C43A8A2025D9D1D700591B77 /* brew-formula.json in Resources */,
C4AF9F72275445FF00D44ED0 /* valet-config.json in Resources */,
C4E2E85828FC256B003B070C /* brew-services-normal.json in Resources */,
C44C1992276E44CB0072762D /* ProgressWindow.storyboard in Resources */,
C42F26762805FEE200938AC7 /* nginx-secure-proxy.test in Resources */,
C4F30B08278E195800755FCE /* brew-services.json in Resources */,
54A18D40282A566E000A0D81 /* nginx-secure-proxy-custom-tld.test in Resources */,
C42CFB1627DFDE7900862737 /* nginx-site.test in Resources */,
C459B4BD27F6093700E9B4B4 /* nginx-proxy.test in Resources */,
C4E2E85428FC256B003B070C /* brew-services-sudo.json in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -1866,6 +1917,7 @@
C40C7F2827721FF600DDDCDC /* ActivePhpInstallation+Checks.swift in Sources */,
C463E380284930EE00422731 /* PresetHelper.swift in Sources */,
C41C02A927E61A65009F26CB /* ValetSite+Fake.swift in Sources */,
C4E2E85C28FC282B003B070C /* TestableConfiguration.swift in Sources */,
C4C0E8DF27F88AEB002D32A9 /* FakeSiteScanner.swift in Sources */,
C44B3A4628E5C70100718CB1 /* TimeIntervalExtension.swift in Sources */,
C44264BE2850B86C007400F1 /* SwiftUIHelper.swift in Sources */,
@ -1920,7 +1972,6 @@
C4D9ADBF277610E1007277F4 /* PhpSwitcher.swift in Sources */,
C45E76142854A65300B4FE0C /* ServicesManager.swift in Sources */,
C46EBC4728DB9644007ACC74 /* RealShell.swift in Sources */,
C4AD38B628ECE56D00FA8D83 /* TestableConfigurations.swift in Sources */,
C4068CAA27B0890D00544CD5 /* MenuBarIcons.swift in Sources */,
C44264C02850BD2A007400F1 /* VersionPopoverView.swift in Sources */,
C4C8E81B276F54E5003AC782 /* PhpConfigWatcher.swift in Sources */,
@ -1965,6 +2016,7 @@
C4C3ED412783497000AB15D8 /* MainMenu+Startup.swift in Sources */,
C40508AF28ADA23D008FAC1F /* NoDomainResultsView.swift in Sources */,
C4D89BC62783C99400A02B68 /* ComposerJson.swift in Sources */,
C4E2E84A28FC1E70003B070C /* DataExtension.swift in Sources */,
C46FA23F246C358E00944F05 /* StringExtension.swift in Sources */,
C42337A3281F19F000459A48 /* Xdebug.swift in Sources */,
C4B97B75275CF08C003F3378 /* AppDelegate+MenuOutlets.swift in Sources */,
@ -1998,12 +2050,14 @@
C471E83A28F9BB650021E251 /* ValetSite+Fake.swift in Sources */,
C471E83B28F9BB650021E251 /* SiteScanner.swift in Sources */,
C471E83C28F9BB650021E251 /* ValetSiteScanner.swift in Sources */,
C4E2E86928FC3002003B070C /* Utility.swift in Sources */,
C471E83D28F9BB650021E251 /* FakeSiteScanner.swift in Sources */,
C471E83F28F9BB650021E251 /* AppDelegate.swift in Sources */,
C471E84028F9BB650021E251 /* AppDelegate+MenuOutlets.swift in Sources */,
C471E84128F9BB650021E251 /* AppDelegate+Notifications.swift in Sources */,
C471E84228F9BB650021E251 /* AppDelegate+InterApp.swift in Sources */,
C471E84328F9BB650021E251 /* App.swift in Sources */,
C4E2E85E28FC282B003B070C /* TestableConfiguration.swift in Sources */,
C471E84428F9BB650021E251 /* App+ActivationPolicy.swift in Sources */,
C471E84528F9BB650021E251 /* App+GlobalHotkey.swift in Sources */,
C471E84628F9BB650021E251 /* InterAppHandler.swift in Sources */,
@ -2031,6 +2085,7 @@
C471E85C28F9BB650021E251 /* DomainListWindowController.swift in Sources */,
C471E85D28F9BB650021E251 /* DomainListVC.swift in Sources */,
C471E85E28F9BB650021E251 /* DomainListVC+ContextMenu.swift in Sources */,
C4E2E86628FC2F1B003B070C /* XCPMApplication.swift in Sources */,
C471E85F28F9BB650021E251 /* DomainListVC+Actions.swift in Sources */,
C471E86028F9BB650021E251 /* SelectionVC.swift in Sources */,
C471E86128F9BB650021E251 /* AddSiteVC.swift in Sources */,
@ -2046,6 +2101,7 @@
C471E86B28F9BB650021E251 /* PreferenceName.swift in Sources */,
C471E86C28F9BB650021E251 /* Preferences.swift in Sources */,
C471E86D28F9BB650021E251 /* CustomPrefs.swift in Sources */,
C4E2E84C28FC1E70003B070C /* DataExtension.swift in Sources */,
C471E86E28F9BB650021E251 /* MenuBarIcons.swift in Sources */,
C471E86F28F9BB650021E251 /* Stats.swift in Sources */,
C471E87028F9BB650021E251 /* GlobalKeybindPreference.swift in Sources */,
@ -2141,6 +2197,7 @@
C471E89528F9BB8F0021E251 /* MenuBarImageGenerator.swift in Sources */,
C471E89628F9BB8F0021E251 /* PMWindowController.swift in Sources */,
C471E89728F9BB8F0021E251 /* VersionExtractor.swift in Sources */,
C4E2E86728FC2F1B003B070C /* XCPMApplication.swift in Sources */,
C471E89828F9BB8F0021E251 /* ValetProxy.swift in Sources */,
C471E89928F9BB8F0021E251 /* ValetProxy+Fake.swift in Sources */,
C471E89A28F9BB8F0021E251 /* ProxyScanner.swift in Sources */,
@ -2179,6 +2236,7 @@
C471E8BC28F9BB8F0021E251 /* DomainListPhpCell.swift in Sources */,
C471E8BD28F9BB8F0021E251 /* DomainListTypeCell.swift in Sources */,
C471E8BE28F9BB8F0021E251 /* DomainListKindCell.swift in Sources */,
C4E2E86A28FC3002003B070C /* Utility.swift in Sources */,
C471E8BF28F9BB8F0021E251 /* DomainListWindowController.swift in Sources */,
C471E8C028F9BB8F0021E251 /* DomainListVC.swift in Sources */,
C471E8C128F9BB8F0021E251 /* DomainListVC+ContextMenu.swift in Sources */,
@ -2196,6 +2254,7 @@
C471E8CD28F9BB8F0021E251 /* PrefsVC.swift in Sources */,
C471E8CE28F9BB8F0021E251 /* PreferenceName.swift in Sources */,
C471E8CF28F9BB8F0021E251 /* Preferences.swift in Sources */,
C4E2E84D28FC1E70003B070C /* DataExtension.swift in Sources */,
C471E8D028F9BB8F0021E251 /* CustomPrefs.swift in Sources */,
C471E8D128F9BB8F0021E251 /* MenuBarIcons.swift in Sources */,
C471E8D228F9BB8F0021E251 /* Stats.swift in Sources */,
@ -2217,6 +2276,7 @@
C471E8E628F9BB8F0021E251 /* VersionPopoverView.swift in Sources */,
C471E8E728F9BB8F0021E251 /* NoDomainResultsView.swift in Sources */,
C471E8E828F9BB8F0021E251 /* ServicesView.swift in Sources */,
C4E2E85F28FC282B003B070C /* TestableConfiguration.swift in Sources */,
C471E8E928F9BB8F0021E251 /* StatsView.swift in Sources */,
C471E8EA28F9BB8F0021E251 /* SectionHeaderView.swift in Sources */,
C471E8EB28F9BB8F0021E251 /* HeaderView.swift in Sources */,
@ -2351,10 +2411,12 @@
C450C8C728C919EC002A2B4B /* PreferenceName.swift in Sources */,
C48D6C75279CD3E400F26D7E /* PhpVersionNumberTest.swift in Sources */,
C485707B28BF458900539B36 /* VersionPopoverView.swift in Sources */,
C4E2E85D28FC282B003B070C /* TestableConfiguration.swift in Sources */,
C485706E28BF451C00539B36 /* OnboardingWindowController.swift in Sources */,
C43603A1275E67610028EFC6 /* AppDelegate+Notifications.swift in Sources */,
C4C3643A28AE4FCE00C0770E /* StatusMenu+Items.swift in Sources */,
C42759682627662800093CAE /* NSMenuExtension.swift in Sources */,
C4E2E84828FC1D93003B070C /* TestableConfigurationTest.swift in Sources */,
C4D936CB27E3EE4A00BD69FE /* DomainListCellProtocol.swift in Sources */,
C4B97B76275CF08C003F3378 /* AppDelegate+MenuOutlets.swift in Sources */,
C4F780CD25D80B75000DBC97 /* Alert.swift in Sources */,
@ -2382,6 +2444,7 @@
54D9E0B327E4F51E003B9AD9 /* HotKeysController.swift in Sources */,
03E36FE828D9219000636F7F /* ActiveShell.swift in Sources */,
C4B97B79275CF1B5003F3378 /* App+ActivationPolicy.swift in Sources */,
C4E2E86528FC2F1B003B070C /* XCPMApplication.swift in Sources */,
C4E49DE828F764050026AC4E /* ActiveCommand.swift in Sources */,
C4CE3BBB27B324230086CA49 /* MainMenu+Switcher.swift in Sources */,
C46E20702829D27F00D909D6 /* AppUpdaterCheckTest.swift in Sources */,
@ -2390,6 +2453,7 @@
C44CCD4127AFE2FC00CE40E5 /* AlertableError.swift in Sources */,
C4CDA894288F1A71007CE25F /* Keys.swift in Sources */,
C4D936CA27E3EB6100BD69FE /* PhpHelper.swift in Sources */,
C4E2E84B28FC1E70003B070C /* DataExtension.swift in Sources */,
C449B4F127EE7FC200C47E8A /* DomainListNameCell.swift in Sources */,
C4F780BA25D80B62000DBC97 /* AppDelegate.swift in Sources */,
54FCFD31276C8DA4004CE748 /* HotkeyPreferenceView.swift in Sources */,