Skip to content

Instantly share code, notes, and snippets.

@kyonmm
kyonmm / replace.groovy
Created May 16, 2011 03:48
指定ディレクトリ配下のファイルの改行コードを変換する
new File("src").eachDirRecurse {
it.eachFile {
if (it.isFile()) {
def s = "${it.readLines().join("\n")}\n"
BufferedWriter w = it.newWriter("UTF-8")
w.write(s)
w.flush()
}
}
}
@kyonmm
kyonmm / replace.gradle
Created May 16, 2011 06:02
1行で指定ディレクトリ配下のファイルの改行コードを変換する(Ant.fixCRLF)
ant.fixcrlf(srcdir:"src", eol:"lf")
@kyonmm
kyonmm / rand_date.groovy
Created June 9, 2011 06:15 — forked from xnrghzjh/rand_date.groovy
指定範囲内の日付をランダムに取得
@Grab(group='joda-time', module='joda-time', version='*')
import org.joda.time.*
DateTime.metaClass.random ={t->
def range = Days.daysBetween(delegate, new DateTime(t)).getDays() + 1
delegate.plusDays(Math.floor(Math.random() * range) as int).toString("yyyy-MM-dd")
}
5.times{
println new DateTime("1978-09-30").random("2011-10-10")
@kyonmm
kyonmm / ftp.gradle
Created June 20, 2011 07:34
Antのオプショナルタスク実行
defaultTasks 'ftp'
repositories{
flatDir(dirs:["lib"])
}
configurations {
ftpAntTask
}
dependencies {
@kyonmm
kyonmm / StringListMultiply
Created September 12, 2011 06:56
文字列リストを辞書的に網羅する。
String.metaClass.multiply = {String s ->
delegate+s
}
List.metaClass.multiply = { List l ->
result = []
delegate.each{e1 ->
l.each{e2 ->
result << e1*e2
}
}
@kyonmm
kyonmm / gist:1443730
Created December 7, 2011 17:37
JavaのListリテラルとMapリテラル
import java.util.*;
public class Main {
public static void main(String... a){
HashMap<String, Integer> m = map($("hoge1",1),$("hoge2",2));
System.out.println(m);
ArrayList<String> l = list("hoge","fuga");
System.out.println(l);
}
@kyonmm
kyonmm / server.groovy
Created February 11, 2012 03:52
Groovyで簡易HTTPサーバー
import com.sun.net.httpserver.HttpExchange
import com.sun.net.httpserver.HttpHandler
import com.sun.net.httpserver.HttpServer
import groovy.xml.MarkupBuilder
def PORT = 6001
HttpServer server = HttpServer.create(new InetSocketAddress(PORT), 0);
server.createContext("/", new HttpHandler() {
@Override
public void handle(HttpExchange he) throws IOException {
@kyonmm
kyonmm / jenkins.groovy
Created May 9, 2012 06:45
Jenkins起動スクリプト
//Jenkins起動スクリプトです。
//環境変数にJENKINS_HOMEを指定する必要があります。
//また、jenkins.warはJENKINS_HOME配下にあるものとして使われています。
if(!System.getenv("JENKINS_HOME")){
println "Please Set 'JENKINS_HOME'"
return
}
if(!new File("${System.getenv("JENKINS_HOME")}/jenkins.war").exists()){
println "Please Confilm ${System.getenv("JENKINS_HOME")}/jenkins.war"
return
@kyonmm
kyonmm / nagoya.groovy
Created May 18, 2012 02:36 — forked from indare/nagoya.groovy
nagoya.groovy
/**
* Created with IntelliJ IDEA.
* User: m_arino
* Date: 12/05/18
* Time: 11:10
* To change this template use File | Settings | File Templates.
*/
(0..100).each {
def printBuff = ""
@kyonmm
kyonmm / build.groovy
Created June 5, 2012 06:14
Gradle + Mercurial + Windowsな環境で保存->ビルド->コミットまでこなします。 基本的には「トピックブランチに移動->本スクリプトを起動->開発->本スクリプトを終了->コミットを整理->ブランチをマージ」とします。gradleのタスク実行はdefaultTaskが実行されるようになっているので、build.gradleのdefaultTasksを設定するか、def p = "cmd /c gradle"のあとに起動したいタスクを指定します。基本的にはUnit Testなタスク
def root = new File("./src/")
println root.absolutePath
lastmodified = [:]
current = [:]
while(true){
current.clear()
root.eachFileRecurse {
current << ["${it.absolutePath}":it.lastModified()]
}
if(!current.equals(lastmodified)){