src="mysrc" // каталог с рабочими файлами
ant = new AntBuilder()
scanner = ant.fileScanner {
fileset(dir:src) {
include(name:"**/*.java")
include(name:"**/*.groovy")
include(name:"**/*.gsp")
include(name:"**/readme")
include(name:"**/*.txt")
include(name:"**/*.css")
}
}
for (f in scanner) {
ant.exec(executable:"enca") {
arg(line: "-x utf8 "+f)
}
}
Этот пример прекрасно запускается в ubuntu.
понедельник, 3 декабря 2007 г.
Приведение файлов к единой кодировке
Обнаружил, что у меня в проекте куча файлов с разными кодировками (utf и windows-1251). Захотелось привести это наследие проклятого прошлого и мрачного настоящего к одной единственной и неповторимой utf8. Все оказалось очень даже просто, при наличии соответствующих инструментов.
В качестве перекодировщика была взята утилита enca, которая замечательно определяет русские (да и не только) кодировки и может конвертировать файл в указанную кодировку.
Небольшой примерчик скрипта на groovy, который собственно и перекодирует нужные файлы в каталоге:
четверг, 29 ноября 2007 г.
Настройка log4j
Настройка log4j, которая не мешает разработке. Все что нужно, это что бы сообщения об ошибках в чем угодно (и свой и чужой код) всегда показывались на консоли и сохранялись в файл. А сообщения info, которыми запросто может обрасти код приложения, вываливались на консоль в режиме разработки. Вот на чем остановился (файл Config.groovy):
log4j {
appender.stdout = "org.apache.log4j.ConsoleAppender"
appender.'stdout.layout' = "org.apache.log4j.PatternLayout"
appender.'stdout.layout.ConversionPattern' = '%d %-6p [%-10t] %-15c{1} - %m%n'
appender.errors = "org.apache.log4j.FileAppender"
appender.'errors.layout' = "org.apache.log4j.PatternLayout"
appender.'errors.layout.ConversionPattern' = '%d %-6p [%-10t] %-15c{1} - %m%n'
appender.'errors.File' = "error.log"
rootLogger = "error,stdout,errors"
logger {
StackTrace = "error,errors"
}
additivity.StackTrace = false
}
environments {
development {
log4j {
logger {
grails = "info,"
}
}
}
}
Поясню некоторые моменты:
- rootLogger = "error,stdout,errors" - все ошибки будут валится на консоль и в файл
- grails = "info," - все логгирование из приложения будет валится на консоль
суббота, 25 августа 2007 г.
Снимок экрана в wxPython
Понадобилось мне тут снять изображение с формы в файл. Приготовился я к долгим поискам этой фичи, а все оказалось очено просто:
def toFile(f):
f.Update()
context = wx.ClientDC(f)
memory = wx.MemoryDC()
x, y = f.GetClientSizeTuple()
bitmap = wx.EmptyBitmap(x, y, -1)
memory.SelectObject(bitmap)
memory.Blit(0, 0, x, y, context, 0, 0)
memory.SelectObject(wx.NullBitmap)
bitmap.SaveFile("temp/test.png", wx.BITMAP_TYPE_PNG)
Здесь f - это любой компонент wxPython. Перед снимком нужно обязательно сделать f.Update(), что бы компонент перерисовался и в файл попало правильно нарисованное изображение.
Взято отсюда: http://wiki.wxpython.org/index.cgi/WorkingWithImages
Подписаться на:
Сообщения (Atom)