- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
cnt_queue_files()->
Command = "ls "++code:lib_dir(messaging, priv)++" | grep -v ^l | wc -l",
case catch list_to_integer(string:strip(os:cmd(Command), right, $\n)) of
X when is_integer(X) -> X;
_ -> 0
end.
clear_queue_files()->
Command = "rm "++code:lib_dir(messaging, priv)++"/*",
os:cmd(Command).
create_empty_queue_file()->
Command = "touch "++code:lib_dir(messaging, priv)++"/~"++?COLD_HALT_EXCHANGE++".que",
os:cmd(Command).
Такое говно можно на любом языке сделать.
Я надеюсь, что это был сарказм? :)
- Непереносимость без веской причины. В либах эрланга всяко есть вменяемые и кроссплатформенные функции для перечисления файлов в каталоге, создания файлов и их удаления.
- Поклейка командной строки в виде строки. Ну тут говно в эрланге - почему-то нет нормальной функции, принимающей массив аргументов, и умеющей их правильно экранировать для текущей операционки. Можно и доиграться (гугли замечательные истории про bumblebee и деинсталлятор яндекс-диска).
- Удар по производительности. Поднимать пару-тройку процессов чтобы посчитать количество файлов в папке, конечно, весело и удобно... И за счет кеша даже не так уж и медленно... Но нахуя зачем?
Потому что могу же! ;-)
Не понял все же куда гуглить про bumblebee?
- Почему кот яйца лижет?
- Потому что может!
open_port, кажется, умеет
А tirinox указал мне на мою ошибку, и показал функцию, которая принимает именно список аргументов, и сама занимается платформозависимой фигней.
Причем здесь функция для обхода файлов? :)
> В либах эрланга всяко есть вменяемые и кроссплатформенные функции для перечисления файлов в каталоге