2017-12-18 1 views
0

Ich möchte ein Skript auf einem Remote-Computer bereitstellen und automatisch ausführen.Wie Remote-SSH-Befehl in sbt Skript ausführen?

Ich weiß jedoch nicht, wie ich einen Fernbefehl ausgeben kann.

Ich habe mehrere Dinge und Plugins ausprobiert, aber nichts davon scheint zu funktionieren.

Gibt es eine Möglichkeit, es zu tun?

val deployAndRunTask = TaskKey[Unit]("deploy-run", "Deploy and run application.") 

deployAndRunTask := { 

    // Deploy .jar file 
    val _ = deployTask.value 

    println("Running the script ..") 

} 

Antwort

0

Hier ist ein funktionierendes Beispiel, das Sie in test.sbt in der obersten Ebene Verzeichnis Ihrer SBT-Projekt speichern. Die shellRun-Methode führt einen beliebigen Befehl aus. Ich verwende shellRun, um ssh auszuführen, eine Verbindung mit dem lokalen Computer herzustellen und die Dateien in meinem Home-Verzeichnis aufzulisten.

import scala.sys.process.Process 

val deployAndRunTask = TaskKey[Unit]("deploy-and-run-task", "Short example") 

deployAndRunTask := { 
    def shellRun(command: String*) = Process(command.toSeq).!!.trim 

    val result = shellRun("/usr/bin/ssh", "localhost", "ls") 
    println(result) 
} 

Run durch Eingabe:

sbt deployAndRunTask