       result.title.onDidRefresh { self.refresh() }
       output?.destroy()
       output = result
-//      output.title.applyTo(tray: tray)
-//      tray.show()
     case let Result.failure(error):
       didReceiveError(String(describing: error))
     }

  */
  func destroy() {
    hide()
    // tray.hide()
    tray.destroy()
    output?.destroy()
  }
//
//  /**
//    User clicked 'Open in Terminal'
//    Opening @path in Terminal App
//    // TODO: Move logic from Bash to Terminal
//  */
//  func preferenceDidOpenInTerminal() {
//    Bash.open(script: path)
//  }
//
//  /**
//    User clicked 'Refresh All'
//  */
//  func preferenceDidRefreshAll() {
//    delegate?.preferenceDidRefreshAll()
//  }
//
//  /**
//    User clicked 'Quit'
//  */
//  func preferenceDidQuit() {
//    delegate?.preferenceDidQuit()
//  }
//
//  /**
//    User changed plugin folder
//  */
//  func preferenceDidChangePluginFolder() {
//    delegate?.preferenceDidChangePluginFolder()
//  }
}

class Plugin {
  private let file: File
  private let path: String
  // private let tray = Tray(title: "…")
  private var output: Output?

  /**
