def main()

in app/services/BackupLauncher.scala [24:69]


  def main(args:Array[String]):Unit = {
    val app = new GuiceApplicationBuilder()
      .overrides(new BackupLauncherInjectionConfig)
      .disable(classOf[InjectionConfig])
      .build()
    implicit val injector = app.injector
    val projectBackup = injector.instanceOf(classOf[NewProjectBackup])

    parser.parse(args, Options(false, false, false)) match {
      case Some(opts) =>

        if (opts.nukeInvalidBackups) {
          projectBackup.nukeInvalidBackups.onComplete({
            case Success(r) =>
              println(s"Nuked ${r.successCount} dodgy backups")
              System.exit(0)
            case Failure(exception) =>
              println(s"ERROR - Could not complete scan: ${exception.getMessage}")
              exception.printStackTrace()
              System.exit(1)
          })
        } else if (opts.deleteAudioBackups) {
          projectBackup.deleteAudioBackups.onComplete({
            case Success(r) =>
              println(s"Attempted to delete ${r.successCount} backups")
              System.exit(0)
            case Failure(exception) =>
              println(s"ERROR - Could not complete scan: ${exception.getMessage}")
              exception.printStackTrace()
              System.exit(1)
          })
        } else {
          projectBackup.backupProjects(!opts.backupAll).onComplete({
            case Success(r) =>
              logger.info(s"Out of ${r.totalCount} total, ${r.successCount} were backed up, ${r.failedCount} failed and ${r.notNeededCount} did not need backup")
              System.exit(0)
            case Failure(exception) =>
              logger.error(s"ERROR - Could not complete backup: ${exception.getMessage}")
              exception.printStackTrace()
              System.exit(1)
          })
        }
      case None =>
        System.exit(2)
    }
  }