gitextract_oblxmil8/ ├── .github/ │ ├── FUNDING.yml │ └── workflows/ │ └── deploy-xbarappcom.yaml ├── .gitignore ├── .vscode/ │ └── settings.json ├── LICENSE.txt ├── README.md ├── app/ │ ├── .gitignore │ ├── README.md │ ├── app.go │ ├── build.sh │ ├── categories_service.go │ ├── categories_service_test.go │ ├── command_service.go │ ├── frontend/ │ │ ├── .gitignore │ │ ├── package.json │ │ ├── postcss.config.js │ │ ├── public/ │ │ │ └── index.html │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ ├── App.svelte │ │ │ ├── Homepage.svelte │ │ │ ├── InstalledPluginView.svelte │ │ │ ├── PersonView.svelte │ │ │ ├── PluginView.svelte │ │ │ ├── PluginsList.svelte │ │ │ ├── backend/ │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ ├── elements/ │ │ │ │ ├── A.svelte │ │ │ │ ├── Breadcrumbs.svelte │ │ │ │ ├── Button.svelte │ │ │ │ ├── Duration.svelte │ │ │ │ ├── Error.svelte │ │ │ │ ├── KeyboardShortcuts.svelte │ │ │ │ ├── PluginCollection.svelte │ │ │ │ ├── PluginDetails.svelte │ │ │ │ ├── PluginSourceBrowser.svelte │ │ │ │ ├── Spinner.svelte │ │ │ │ ├── Switch.svelte │ │ │ │ ├── VariableInput.svelte │ │ │ │ └── Variables.svelte │ │ │ ├── main.js │ │ │ ├── pagedata.svelte │ │ │ ├── rpc.svelte │ │ │ ├── signals.svelte │ │ │ ├── styles.css │ │ │ └── waiters.svelte │ │ └── tailwind.config.js │ ├── go.mod │ ├── go.sum │ ├── incoming_urls.go │ ├── incoming_urls_test.go │ ├── main.go │ ├── menu_parser.go │ ├── menu_parser_test.go │ ├── package.json │ ├── package.sh │ ├── person_service.go │ ├── plugins_service.go │ ├── settings.go │ ├── settings_test.go │ ├── test.sh │ └── wails.json ├── archive/ │ └── bitbar/ │ ├── .gitignore │ ├── .gitmodules │ ├── .travis.yml │ ├── App/ │ │ ├── BitBar/ │ │ │ ├── App.xib │ │ │ ├── AppDelegate.m │ │ │ ├── Base.lproj/ │ │ │ │ └── MainMenu.xib │ │ │ ├── BitBar-Info.plist │ │ │ ├── CHANGELOG.md │ │ │ ├── ExecutablePlugin.h │ │ │ ├── ExecutablePlugin.m │ │ │ ├── HTMLPlugin.h │ │ │ ├── HTMLPlugin.m │ │ │ ├── Images.xcassets/ │ │ │ │ └── AppIcon.appiconset/ │ │ │ │ └── Contents.json │ │ │ ├── NSColor+Hex.h │ │ │ ├── NSColor+Hex.m │ │ │ ├── NSString+ANSI.h │ │ │ ├── NSString+ANSI.m │ │ │ ├── NSUserDefaults+Settings.h │ │ │ ├── NSUserDefaults+Settings.m │ │ │ ├── Plugin.h │ │ │ ├── Plugin.m │ │ │ ├── PluginManager.h │ │ │ ├── PluginManager.m │ │ │ └── incoming-url-tests.html │ │ ├── BitBar.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ ├── BitBar.xccheckout │ │ │ │ ├── BitBar.xcscmblueprint │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── xcshareddata/ │ │ │ └── xcschemes/ │ │ │ ├── BitBar.xcscheme │ │ │ └── BitBarDistro.xcscheme │ │ ├── BitBarTests/ │ │ │ ├── BitBarTests-Info.plist │ │ │ ├── PluginManager+Test.h │ │ │ ├── PluginManager+Test.m │ │ │ ├── PluginManagerTest.m │ │ │ ├── PluginTest.m │ │ │ └── TestPlugins/ │ │ │ ├── one.10s.sh │ │ │ ├── three.7d.sh │ │ │ └── two.5m.sh │ │ └── Vendor/ │ │ ├── AHProxySettings/ │ │ │ ├── .gitignore │ │ │ ├── AHProxyExampe/ │ │ │ │ ├── AppDelegate.h │ │ │ │ ├── AppDelegate.m │ │ │ │ ├── Base.lproj/ │ │ │ │ │ └── MainMenu.xib │ │ │ │ ├── Images.xcassets/ │ │ │ │ │ └── AppIcon.appiconset/ │ │ │ │ │ └── Contents.json │ │ │ │ ├── Info.plist │ │ │ │ └── main.m │ │ │ ├── AHProxySettings/ │ │ │ │ ├── AHProxy.h │ │ │ │ ├── AHProxy.m │ │ │ │ ├── AHProxySettings.h │ │ │ │ ├── AHProxySettings.m │ │ │ │ ├── NSTask+useSystemProxies.h │ │ │ │ └── NSTask+useSystemProxies.m │ │ │ ├── AHProxySettings.podspec │ │ │ ├── AHProxySettings.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ ├── project.xcworkspace/ │ │ │ │ │ └── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── xcschemes/ │ │ │ │ └── AHProxySettings.xcscheme │ │ │ ├── AHProxySettingsTests/ │ │ │ │ ├── AHProxySettingsTest.m │ │ │ │ └── Info.plist │ │ │ ├── LICENSE │ │ │ └── README.md │ │ ├── DateTools/ │ │ │ ├── .gitignore │ │ │ ├── .travis.yml │ │ │ ├── CREDITS.md │ │ │ ├── DateTools/ │ │ │ │ ├── DTConstants.h │ │ │ │ ├── DTConstants.m │ │ │ │ ├── DTError.h │ │ │ │ ├── DTError.m │ │ │ │ ├── DTTimePeriod.h │ │ │ │ ├── DTTimePeriod.m │ │ │ │ ├── DTTimePeriodChain.h │ │ │ │ ├── DTTimePeriodChain.m │ │ │ │ ├── DTTimePeriodCollection.h │ │ │ │ ├── DTTimePeriodCollection.m │ │ │ │ ├── DTTimePeriodGroup.h │ │ │ │ ├── DTTimePeriodGroup.m │ │ │ │ ├── DateTools.bundle/ │ │ │ │ │ ├── ar.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── bg.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── ca.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── cs.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── cy.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── da.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── de.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── en.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── es.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── eu.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── fi.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── fr.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── gre.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── gu.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── he.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── hi.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── hr.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── hu.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── id.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── is.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── it.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── ja.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── ko.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── lv.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── ms.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── nb.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── nl.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── pl.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── pt-PT.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── pt.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── ro.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── ru.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── sl.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── sv.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── th.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── tr.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── uk.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── vi.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ ├── zh-Hans.lproj/ │ │ │ │ │ │ └── DateTools.strings │ │ │ │ │ └── zh-Hant.lproj/ │ │ │ │ │ └── DateTools.strings │ │ │ │ ├── DateTools.h │ │ │ │ ├── NSDate+DateTools.h │ │ │ │ └── NSDate+DateTools.m │ │ │ ├── DateTools.podspec │ │ │ ├── Examples/ │ │ │ │ └── DateToolsExample/ │ │ │ │ ├── DateTools/ │ │ │ │ │ └── Info.plist │ │ │ │ ├── DateToolsExample/ │ │ │ │ │ ├── AppDelegate.h │ │ │ │ │ ├── AppDelegate.m │ │ │ │ │ ├── Colours.h │ │ │ │ │ ├── Colours.m │ │ │ │ │ ├── DateToolsExample-Info.plist │ │ │ │ │ ├── DateToolsExample-Prefix.pch │ │ │ │ │ ├── DateToolsViewController.h │ │ │ │ │ ├── DateToolsViewController.m │ │ │ │ │ ├── DateToolsViewController.xib │ │ │ │ │ ├── ExampleNavigationController.h │ │ │ │ │ ├── ExampleNavigationController.m │ │ │ │ │ ├── Images.xcassets/ │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── LaunchImage.launchimage/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── TimePeriodsViewController.h │ │ │ │ │ ├── TimePeriodsViewController.m │ │ │ │ │ ├── TimePeriodsViewController.xib │ │ │ │ │ ├── en.lproj/ │ │ │ │ │ │ └── InfoPlist.strings │ │ │ │ │ └── main.m │ │ │ │ ├── DateToolsExample.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ ├── project.xcworkspace/ │ │ │ │ │ │ └── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── xcschemes/ │ │ │ │ │ └── DateTools.xcscheme │ │ │ │ └── DateToolsExampleTests/ │ │ │ │ ├── DateToolsExampleTests-Info.plist │ │ │ │ └── en.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ └── Tests/ │ │ │ └── DateToolsTests/ │ │ │ ├── DateToolsTests/ │ │ │ │ ├── AppDelegate.h │ │ │ │ ├── AppDelegate.m │ │ │ │ ├── Base.lproj/ │ │ │ │ │ └── Main.storyboard │ │ │ │ ├── DateToolsTests-Info.plist │ │ │ │ ├── DateToolsTests-Prefix.pch │ │ │ │ ├── Images.xcassets/ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── LaunchImage.launchimage/ │ │ │ │ │ └── Contents.json │ │ │ │ ├── ViewController.h │ │ │ │ ├── ViewController.m │ │ │ │ ├── en.lproj/ │ │ │ │ │ └── InfoPlist.strings │ │ │ │ ├── es.lproj/ │ │ │ │ │ ├── InfoPlist.strings │ │ │ │ │ └── Main.strings │ │ │ │ ├── ja.lproj/ │ │ │ │ │ ├── InfoPlist.strings │ │ │ │ │ └── Main.strings │ │ │ │ └── main.m │ │ │ ├── DateToolsTests.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ ├── project.xcworkspace/ │ │ │ │ │ └── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── xcschemes/ │ │ │ │ ├── DateToolsTests.xcscheme │ │ │ │ └── DateToolsTestsTests.xcscheme │ │ │ └── DateToolsTestsTests/ │ │ │ ├── DTTimeAgoTests.m │ │ │ ├── DTTimePeriodChainTests.m │ │ │ ├── DTTimePeriodCollectionTests.m │ │ │ ├── DTTimePeriodGroupTests.m │ │ │ ├── DTTimePeriodTests.m │ │ │ ├── DateToolsTests.m │ │ │ ├── DateToolsTestsTests-Info.plist │ │ │ ├── en.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── es.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ └── ja.lproj/ │ │ │ └── InfoPlist.strings │ │ ├── LaunchAtLoginController/ │ │ │ ├── LaunchAtLoginController.h │ │ │ ├── LaunchAtLoginController.m │ │ │ └── README.md │ │ ├── NSStringEmojize/ │ │ │ ├── .gitignore │ │ │ ├── Example/ │ │ │ │ ├── NSStringEmojize/ │ │ │ │ │ ├── DIYAppDelegate.h │ │ │ │ │ ├── DIYAppDelegate.m │ │ │ │ │ ├── DIYViewController.h │ │ │ │ │ ├── DIYViewController.m │ │ │ │ │ ├── NSStringEmojize-Info.plist │ │ │ │ │ ├── NSStringEmojize-Prefix.pch │ │ │ │ │ ├── en.lproj/ │ │ │ │ │ │ └── InfoPlist.strings │ │ │ │ │ └── main.m │ │ │ │ ├── NSStringEmojize.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ └── contents.xcworkspacedata │ │ │ │ └── NSStringEmojizeTests/ │ │ │ │ ├── NSStringEmojizeTests-Info.plist │ │ │ │ ├── NSStringEmojizeTests.h │ │ │ │ ├── NSStringEmojizeTests.m │ │ │ │ └── en.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── LICENSE.md │ │ │ ├── NSStringEmojize/ │ │ │ │ ├── NSString+Emojize.h │ │ │ │ ├── NSString+Emojize.m │ │ │ │ └── emojis.h │ │ │ ├── NSStringEmojize.podspec │ │ │ └── README.md │ │ ├── STPrivilegedTask/ │ │ │ ├── .gitignore │ │ │ ├── LICENSE.txt │ │ │ ├── PrivilegedTaskExample/ │ │ │ │ ├── PrivilegedTaskExample/ │ │ │ │ │ ├── AppDelegate.h │ │ │ │ │ ├── AppDelegate.m │ │ │ │ │ ├── Base.lproj/ │ │ │ │ │ │ └── MainMenu.xib │ │ │ │ │ ├── Info.plist │ │ │ │ │ ├── lock-icon.icns │ │ │ │ │ └── main.m │ │ │ │ └── PrivilegedTaskExample.xcodeproj/ │ │ │ │ └── project.pbxproj │ │ │ ├── README.md │ │ │ ├── STPrivilegedTask.h │ │ │ ├── STPrivilegedTask.m │ │ │ └── STPrivilegedTask.podspec │ │ └── Sparkle/ │ │ ├── .clang-format │ │ ├── .gitignore │ │ ├── .travis.yml │ │ ├── CHANGELOG │ │ ├── Configurations/ │ │ │ ├── ConfigBinaryDelta.xcconfig │ │ │ ├── ConfigBinaryDeltaDebug.xcconfig │ │ │ ├── ConfigBinaryDeltaRelease.xcconfig │ │ │ ├── ConfigCommon.xcconfig │ │ │ ├── ConfigCommonCoverage.xcconfig │ │ │ ├── ConfigCommonDebug.xcconfig │ │ │ ├── ConfigCommonRelease.xcconfig │ │ │ ├── ConfigFileop.xcconfig │ │ │ ├── ConfigFramework.xcconfig │ │ │ ├── ConfigFrameworkDebug.xcconfig │ │ │ ├── ConfigFrameworkRelease.xcconfig │ │ │ ├── ConfigRelaunch.xcconfig │ │ │ ├── ConfigRelaunchDebug.xcconfig │ │ │ ├── ConfigRelaunchRelease.xcconfig │ │ │ ├── ConfigTestApp.xcconfig │ │ │ ├── ConfigTestAppDebug.xcconfig │ │ │ ├── ConfigTestAppRelease.xcconfig │ │ │ ├── ConfigUITest.xcconfig │ │ │ ├── ConfigUITestCoverage.xcconfig │ │ │ ├── ConfigUITestDebug.xcconfig │ │ │ ├── ConfigUITestRelease.xcconfig │ │ │ ├── ConfigUnitTest.xcconfig │ │ │ ├── ConfigUnitTestCoverage.xcconfig │ │ │ ├── ConfigUnitTestDebug.xcconfig │ │ │ ├── ConfigUnitTestRelease.xcconfig │ │ │ ├── make-release-package.sh │ │ │ └── set-git-version-info.sh │ │ ├── Documentation/ │ │ │ ├── .gitignore │ │ │ ├── Doxyfile │ │ │ └── build-docs.sh │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README.markdown │ │ ├── Resources/ │ │ │ ├── Images.xcassets/ │ │ │ │ └── AppIcon.appiconset/ │ │ │ │ └── Contents.json │ │ │ ├── SUModelTranslation.plist │ │ │ ├── SampleAppcast.xml │ │ │ └── Sparkle-Icon.sketch │ │ ├── Sparkle/ │ │ │ ├── Autoupdate/ │ │ │ │ ├── Autoupdate-Info.plist │ │ │ │ └── Autoupdate.m │ │ │ ├── CheckLocalizations.swift │ │ │ ├── SUAppcast.h │ │ │ ├── SUAppcast.m │ │ │ ├── SUAppcastItem.h │ │ │ ├── SUAppcastItem.m │ │ │ ├── SUAutomaticUpdateAlert.h │ │ │ ├── SUAutomaticUpdateAlert.m │ │ │ ├── SUAutomaticUpdateDriver.h │ │ │ ├── SUAutomaticUpdateDriver.m │ │ │ ├── SUBasicUpdateDriver.h │ │ │ ├── SUBasicUpdateDriver.m │ │ │ ├── SUBinaryDeltaApply.h │ │ │ ├── SUBinaryDeltaApply.m │ │ │ ├── SUBinaryDeltaCommon.h │ │ │ ├── SUBinaryDeltaCommon.m │ │ │ ├── SUBinaryDeltaCreate.h │ │ │ ├── SUBinaryDeltaCreate.m │ │ │ ├── SUBinaryDeltaTool.m │ │ │ ├── SUBinaryDeltaUnarchiver.h │ │ │ ├── SUBinaryDeltaUnarchiver.m │ │ │ ├── SUCodeSigningVerifier.h │ │ │ ├── SUCodeSigningVerifier.m │ │ │ ├── SUConstants.h │ │ │ ├── SUConstants.m │ │ │ ├── SUDSAVerifier.h │ │ │ ├── SUDSAVerifier.m │ │ │ ├── SUDiskImageUnarchiver.h │ │ │ ├── SUDiskImageUnarchiver.m │ │ │ ├── SUErrors.h │ │ │ ├── SUExport.h │ │ │ ├── SUFileManager.h │ │ │ ├── SUFileManager.m │ │ │ ├── SUGuidedPackageInstaller.h │ │ │ ├── SUGuidedPackageInstaller.m │ │ │ ├── SUHost.h │ │ │ ├── SUHost.m │ │ │ ├── SUInstaller.h │ │ │ ├── SUInstaller.m │ │ │ ├── SULog.h │ │ │ ├── SULog.m │ │ │ ├── SUOperatingSystem.h │ │ │ ├── SUOperatingSystem.m │ │ │ ├── SUPackageInstaller.h │ │ │ ├── SUPackageInstaller.m │ │ │ ├── SUPipedUnarchiver.h │ │ │ ├── SUPipedUnarchiver.m │ │ │ ├── SUPlainInstaller.h │ │ │ ├── SUPlainInstaller.m │ │ │ ├── SUProbingUpdateDriver.h │ │ │ ├── SUProbingUpdateDriver.m │ │ │ ├── SUScheduledUpdateDriver.h │ │ │ ├── SUScheduledUpdateDriver.m │ │ │ ├── SUStandardVersionComparator.h │ │ │ ├── SUStandardVersionComparator.m │ │ │ ├── SUStatus.xib │ │ │ ├── SUStatusController.h │ │ │ ├── SUStatusController.m │ │ │ ├── SUSystemProfiler.h │ │ │ ├── SUSystemProfiler.m │ │ │ ├── SUUIBasedUpdateDriver.h │ │ │ ├── SUUIBasedUpdateDriver.m │ │ │ ├── SUUnarchiver.h │ │ │ ├── SUUnarchiver.m │ │ │ ├── SUUnarchiver_Private.h │ │ │ ├── SUUpdateAlert.h │ │ │ ├── SUUpdateAlert.m │ │ │ ├── SUUpdateDriver.h │ │ │ ├── SUUpdateDriver.m │ │ │ ├── SUUpdatePermissionPrompt.h │ │ │ ├── SUUpdatePermissionPrompt.m │ │ │ ├── SUUpdater.h │ │ │ ├── SUUpdater.m │ │ │ ├── SUUpdater_Private.h │ │ │ ├── SUUserInitiatedUpdateDriver.h │ │ │ ├── SUUserInitiatedUpdateDriver.m │ │ │ ├── SUVersionComparisonProtocol.h │ │ │ ├── SUVersionDisplayProtocol.h │ │ │ ├── SUWindowController.h │ │ │ ├── SUWindowController.m │ │ │ ├── Sparkle-Info.plist │ │ │ ├── Sparkle.h │ │ │ ├── Sparkle.pch │ │ │ ├── ar.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── ca.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── cs.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── da.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── de.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── el.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── en.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── es.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── fi.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── fr.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── he.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── is.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── it.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── ja.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── ko.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── nb.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── nl.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── no.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── pl.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── pt_BR.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── pt_PT.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── ro.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── ru.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── sk.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── sl.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── sv.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── th.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── tr.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── uk.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ ├── zh_CN.lproj/ │ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ │ ├── SUUpdateAlert.xib │ │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ │ └── Sparkle.strings │ │ │ └── zh_TW.lproj/ │ │ │ ├── SUAutomaticUpdateAlert.xib │ │ │ ├── SUUpdateAlert.xib │ │ │ ├── SUUpdatePermissionPrompt.xib │ │ │ └── Sparkle.strings │ │ ├── Sparkle.podspec │ │ ├── Sparkle.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace/ │ │ │ │ └── contents.xcworkspacedata │ │ │ └── xcshareddata/ │ │ │ └── xcschemes/ │ │ │ ├── Distribution.xcscheme │ │ │ ├── Sparkle.xcscheme │ │ │ └── UITests.xcscheme │ │ ├── TestApplication/ │ │ │ ├── English.lproj/ │ │ │ │ ├── InfoPlist.strings │ │ │ │ └── MainMenu.xib │ │ │ ├── SUTestApplicationDelegate.h │ │ │ ├── SUTestApplicationDelegate.m │ │ │ ├── SUTestWebServer.h │ │ │ ├── SUTestWebServer.m │ │ │ ├── SUUpdateSettingsWindowController.h │ │ │ ├── SUUpdateSettingsWindowController.m │ │ │ ├── SUUpdateSettingsWindowController.xib │ │ │ ├── TestApplication-Info.plist │ │ │ ├── ar.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── ca.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── cs.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── cy.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── da.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── de.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── el.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── es.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── fi.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── fr-CA.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── fr.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── he.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── hu.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── id.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── is.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── it.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── ja.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── ko.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── main.m │ │ │ ├── nb.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── nl.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── pl.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── pt-BR.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── pt-PT.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── pt.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── ro.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── ru.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── sk.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── sl.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── sparkletestcast.xml │ │ │ ├── sv.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── test_app_only_dsa_priv_dont_ever_do_this_for_real.pem │ │ │ ├── test_app_only_dsa_pub.pem │ │ │ ├── th.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── tr.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── uk.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ ├── zh-Hans.lproj/ │ │ │ │ └── InfoPlist.strings │ │ │ └── zh-Hant.lproj/ │ │ │ └── InfoPlist.strings │ │ ├── Tests/ │ │ │ ├── Resources/ │ │ │ │ ├── SparkleTestCodeSignApp.dmg │ │ │ │ ├── SparkleTestCodeSignApp.enc.dmg │ │ │ │ ├── SparkleTestCodeSignApp.tar.bz2 │ │ │ │ ├── SparkleTestCodeSignApp.tar.xz │ │ │ │ ├── signed-test-file.txt │ │ │ │ ├── test-pubkey.pem │ │ │ │ ├── test.sparkle_guided.pkg │ │ │ │ ├── testappcast.xml │ │ │ │ └── testnamespaces.xml │ │ │ ├── SUAppcastTest.swift │ │ │ ├── SUBinaryDeltaTest.m │ │ │ ├── SUCodeSigningVerifierTest.m │ │ │ ├── SUDSAVerifierTest.m │ │ │ ├── SUFileManagerTest.swift │ │ │ ├── SUInstallerTest.m │ │ │ ├── SUUnarchiverTest.swift │ │ │ ├── SUUpdaterTest.m │ │ │ ├── SUVersionComparisonTest.m │ │ │ ├── Sparkle Unit Tests-Bridging-Header.h │ │ │ └── SparkleTests-Info.plist │ │ ├── UITests/ │ │ │ ├── SUTestApplicationTest.swift │ │ │ └── UITests-Info.plist │ │ ├── Vendor/ │ │ │ ├── CocoatechCore/ │ │ │ │ ├── NTSynchronousTask.h │ │ │ │ └── NTSynchronousTask.m │ │ │ └── bsdiff/ │ │ │ ├── bscommon.c │ │ │ ├── bscommon.h │ │ │ ├── bsdiff.c │ │ │ ├── bspatch.c │ │ │ ├── bspatch.h │ │ │ ├── sais.c │ │ │ └── sais.h │ │ ├── bin/ │ │ │ ├── generate_keys │ │ │ └── sign_update │ │ └── fileop/ │ │ ├── SUFileOperationConstants.h │ │ ├── SUFileOperationConstants.m │ │ └── fileop.m │ ├── Docs/ │ │ ├── DistributingBitBar.md │ │ └── URLScheme.md │ ├── Makefile │ ├── README.md │ └── Scripts/ │ └── bitbar-bundler ├── pkg/ │ ├── metadata/ │ │ ├── categories_metadata.go │ │ ├── categories_metadata_test.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── plugin_metadata.go │ │ └── plugin_metadata_test.go │ ├── plugins/ │ │ ├── README.md │ │ ├── action.go │ │ ├── action_test.go │ │ ├── colors.go │ │ ├── emoji.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── install.go │ │ ├── install_test.go │ │ ├── installed_plugins.go │ │ ├── installed_plugins_test.go │ │ ├── item_params.go │ │ ├── item_params_test.go │ │ ├── parse.go │ │ ├── parse_test.go │ │ ├── plugin.go │ │ ├── plugin_darwin.go │ │ ├── plugin_linux.go │ │ ├── plugin_test.go │ │ ├── plugin_windows.go │ │ ├── refresh_interval.go │ │ ├── refresh_interval_test.go │ │ ├── testdata/ │ │ │ ├── broken-plugins/ │ │ │ │ ├── broken.1m.sh │ │ │ │ └── wont-quit.1m.sh │ │ │ ├── plugins/ │ │ │ │ ├── 001-multiple.1s.sh │ │ │ │ ├── 001-multiple.1s.sh.vars.json │ │ │ │ ├── 002-multiple.1s.sh │ │ │ │ ├── dirs-should-be-ignored/ │ │ │ │ │ └── .gitkeep │ │ │ │ ├── expanded.1m.sh │ │ │ │ ├── expanded.1m.sh.off │ │ │ │ ├── expanded.1s.sh │ │ │ │ ├── params.3s.sh │ │ │ │ ├── simple.1m.sh │ │ │ │ ├── simple.1m.sh.disabled │ │ │ │ └── simple.1s.sh │ │ │ ├── stub-api/ │ │ │ │ └── currency-tracker.1h.py.json │ │ │ ├── token-too-long/ │ │ │ │ ├── jma.1h.sh │ │ │ │ └── jma.1h.sh.output │ │ │ └── vars-test/ │ │ │ ├── plugin.sh │ │ │ └── plugin.sh.vars.json │ │ ├── variables.go │ │ └── variables_test.go │ └── update/ │ ├── README.md │ ├── go.mod │ ├── go.sum │ ├── update.go │ ├── update_test.go │ └── updatetest/ │ └── main.go ├── talk-overview.md ├── tools/ │ ├── sitegen/ │ │ ├── README.md │ │ ├── docs.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── images.go │ │ ├── main.go │ │ ├── repo.go │ │ ├── repo_test.go │ │ └── run.sh │ └── xbarmdcheck/ │ ├── README.md │ ├── go.mod │ ├── go.sum │ ├── main.go │ └── testdata/ │ └── sample-plugin.sh └── xbarapp.com/ ├── .gcloudignore ├── README.md ├── app.yaml ├── articles/ │ └── 2021/ │ └── 03/ │ ├── 13/ │ │ └── Upgrade-legacy-BitBar-plugins.md │ └── 14/ │ └── Variables-in-xbar.md ├── build.sh ├── deploy.sh ├── download.go ├── gen.sh ├── go.mod ├── go.sum ├── main.go ├── main_test.go ├── package.json ├── postcss.config.js ├── public/ │ └── css/ │ └── xbar.css ├── run.sh ├── styles.css ├── tailwind.config.js └── templates/ ├── _layout.html ├── article.html ├── articles-index.html ├── category.html ├── contributor.html ├── contributors.html ├── index.html └── plugin.html