Názor k článku Groovy v příkladech: objektově orientované programování od Milan - ... abych neuvedl nějaký užitečnější příklad. Tak například...

  • Článek je starý, nové názory již nelze přidávat.
  • 13. 1. 2008 14:18

    Milan (neregistrovaný)
    ... abych neuvedl nějaký užitečnější příklad. Tak například kolega si postahoval spoustu dokumentů z CVS. Nicméně když to dělal, tak mu ještě nebyl přidělen CVS account. Nyní už ho má, tak jak to zařídit, aby nemusel dokumenty stahovat znova a přitom komitoval změny již pod svojí identitou? Jednoduše napsat skript, co zamění uživatelské jméno v connection stringu v CVS/Root souborech. Skript níže používá jak RE, tak práci se soubory a rovněž ukazuje integraci s externímy programy (omlouvám se, ale momentálně s Windows)

    První parametr je cesta k root adresáři s CVS obsahem, druhý pak nové uživatelské jméno.

    new File(args[0]).eachFileRecurse { f ->
    if (f.parentFile.name.equals('CVS') && f.name.equals('Root')) {
    def m = f.readLines()[0] =~ '(:pserver:)(.+)(@.+)'
    if (m) {
    println "Modyfying ${f.path}"
    def tmp = new File("${f.path}.tmp")
    def out = tmp.newPrintWriter()
    out.println("${m[0][1]}${args[1]}${m[0][3]}")
    out.close()
    "cmd /c move /Y ${tmp.path} ${f.path}".execute()
    }
    }
    }