Friday, March 27, 2009

bash wrapper scripting - parameters

краткий ответ: $@

сам пост:
Допустим, есть какая-то уже налаженная схема запуска чего-либо, где всё настроено и работает, но хочется чуть-чуть изменить процесс, причём где-то в середине и без особого гемороя. Легко и просто - заменяем исполняемую команду на скриптег, который делает наши действия и потом вызывает саму настоящую программу. Бида, бида нас ждёт, если сделать всё в лоб!
[cra@server 10:37 ~]
$ cat /usr/bin/svnserve
#!/bin/bash

umask 002
/usr/bin/svnserve_real

даст, например, неудачный резальтат

[cra@zenwalk 10:38:53 /tmp]
$ svn checkout svn+ssh://servak_inet/repos/gui/trunk
You must specify exactly one of -d, -i, -t or -X.
Type '/usr/bin/svnserve_real --help' for usage.
svn: Connection closed unexpectedly


Решение тривиально, надо чуть-чуть изменить исходный скрипт
[cra@server 10:45 ~]
$ cat /usr/bin/svnserve
#!/bin/bash

umask 002
/usr/bin/svnserve_real $@


Вот так, а я и не знал, однако :)

Friday, March 6, 2009

Dream Theater в Москве 10 июня!



Кстати, скриншоты в линуксе делаются командой, указанной на скриншоте :) import -window root filename.png %)

UPD: that was awesome, но за такие деньги я на них больше не пойду.

Wednesday, March 4, 2009

Digitizers & awk helps a lot

Понадобилось перевести картинку в набор точек. Оказалось, существует целый набор подобных программ, назваются Дигитайзеры. Я использовал Engauge Digitzer: ( например, тут можно его скачать http://linux.softpedia.com/progDownload/Engauge-Digitizer-Download-1240.html )

Использование этой штуки крайне интуитивно, просто расставляются точки, устанавливаются опорные точки, и вуаля - на выходе csv готово. Засунуть в код можно простым и грубым способом через awk:
awk {print "points[" NR-1 "].set(" $1 "," $2 ");"} Armko.csv

Криво и через задницу, зато работает. А конкструктор можно переписать, когда уже будет отлажена функциональность