Gradleからtelnet

また、Gradleネタで。
Gradleからtelnetする機会があったのでメモ。
結局 antなんですが。

configurations { telnetAntTask }
repositories { mavenCentral() }

dependencies {
  telnetAntTask("org.apache.ant:ant-commons-net:1.8.4") {
    module("commons-net:commons-net:1.4.1") {
      dependencies "oro:oro:2.0.8:jar"
    }
  }
}

task telnet << {
  ant {
    taskdef(name: 'telnet',
      classname: 'org.apache.tools.ant.taskdefs.optional.net.TelnetTask',
      classpath: configurations.telnetAntTask.asPath)

    telnet(server: "<ホスト名>", userid: user, password: pass) {
      read('$ ') // プロンプト
      write('touch foo')
      read('$ ') // プロンプト
    }
  }
}

こんな感じで、'touch foo'の部分が実行したいコマンドです。
起動は、以下。

gradle -Puser=<ユーザ名> -Ppass=<パスワード> telnet

でもこれだとパスワードが丸見え。

ちなみにsshは、こちら。
http://d.hatena.ne.jp/bluepapa32/20110502/1304297900

以上です。