ruby -run
Это копипаст с небольшими правками из моего блога, который я использую для сохранения информации, потенциально полезной для меня, но которую обычно забываю. Посчитал, что инфа может показаться кому-нибудь интересной.
Intro
Относительно недавно искал способ в одну строчку запустить веб-сервер в текущей директории.
На просторах Stack Overflow нашел примерно такую команду:
ruby -run -e httpd -- -p 9090 [DIR]
Что же это за загадочная опция -run
и почему ее нет в мануале?
Опция -run
Разумеется, никакая это не опция. Точнее, опция, но не run
. Обратите внимание на то, что перед ней стоит одно тире, а не два.
На самом деле, это опция -r
с аргументом un
.
В свою очередь un
— это файлик в стандартной библиотеке, который определяет несколько полезных функций, которые удобно использовать в однострочниках.
Одна из них — httpd
которая просто запускает WebBrick
, используя параметры из ARGV
(в данном случае — порт и директория).
Доступность
Очевидно, это весьма старый файл, т.к. я нашел документацию к нему аж для версии 1.8.6
.
Так что можно использовать без боязни.
А что еще есть?
Копирую из документации:
ruby -run -e cp -- [OPTION] SOURCE DEST
ruby -run -e ln -- [OPTION] TARGET LINK_NAME
ruby -run -e mv -- [OPTION] SOURCE DEST
ruby -run -e rm -- [OPTION] FILE
ruby -run -e mkdir -- [OPTION] DIRS
ruby -run -e rmdir -- [OPTION] DIRS
ruby -run -e install -- [OPTION] SOURCE DEST
ruby -run -e chmod -- [OPTION] OCTAL-MODE FILE
ruby -run -e touch -- [OPTION] FILE
ruby -run -e help [COMMAND]
Заключение
Полагаю, что использовать un
вне однострочников вида ruby -run -e
не имеет смысла, т.к. каждый из методов, определенных там, использует ARGV. Но полезно иметь на заметку, что ruby умеет это. Скорее всего, в Windows это будет работать точно так же (я вот не знаю, как в винде удалить файл или создать директорию, а тут все определено в руби).
Кстати, добавил себе в баш такую команду:
alias start-webrick='ruby -run -e httpd -- -p 9090'
Очень удобно.
Ссылка на гитхаб
Комментарии (2)
5 января 2017 в 08:44 (комментарий был изменён)
–2↑
↓
Это копипаст с небольшими правками из моего блога
В первом же предложении — прямым текстом чистосердечное признание нарушения правил ресурса? Такого я ещё не видел.На всякий случай цитата из Правил:
Вот список того, чего на ресурсе делать не следует
- […]
- Заниматься копипастом и кросспостом. […] не следует копипастить на «Хабр» тексты, которые ранее были опубликованы на других ресурсах (даже если вы — автор такого текста).
- […]
5 января 2017 в 11:53
+3↑
↓
Главное — полезность для сообщества. Даже если я немного нарушил правила:)
На крайний случай, пусть меня накажет администрация, если это принципиально