Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.FIDONET.DIGEST
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.FIDONET.DIGEST с датами от 15 Jul 13 08:53:56 до 19 Apr 24 12:59:59, всего сообщений: 2388
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 111 из 2388 ================================= RU.FIDONET.DIGEST =
От   : Vladimir Fyodorov                2:50/15            28 May 14 22:24:16
Кому : All                                                 28 May 14 22:24:16
Тема : RU.JNODE: groovy-консоль для jNode
FGHI : area://RU.FIDONET.DIGEST?msgid=2:50/15+53862a27
= Кодировка сообщения определена как: CP866 ==================================
==============================================================================

> Кирилл Темненков сделал модуль для jnode - groovy console.

=============================================================================
* Area : RU.JNODE
* From : Kirill Temnenkov, 2:5020/828.17 (28 Мая 2014 16:08)
* Subj : Очередная дыра в безопасности :-) - groovy-консоль
=============================================================================
Здpавствуй, All!

Вдохновился вот этим постом - http://habrahabr.ru/post/223745/ и сделал модуль для jnode - groovy console. После установки можно при желании зайти телнетом и получить консоль с доступом к потрохам jnode. Доступ к потрохам - это значит, что можно делать все то же самое, что и в скриптах (в консоли зарегистрированы те же самые хелперы) и можно получить доступ ко всем публичным методам классов jnode - удобно для отладки, багфиксинга и куроченья живой системы.

Выглядит это примерно так:


>───═══ Куть он "Windows Clipboard" ═══───
[fido@fido828 ~]$ telnet localhost 3113
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Groovy Shell (2.3.1, JVM: 1.7.0_51)
Type ':help' or ':h' for help.
-------------------------------------------------------------------------------
groovy:000> rsshelper.postNewsToEchoarea("Hовые впечатления на Флибусте",
groovy:000> "828.rss.flibusta.ru",
groovy:000> "http://flibusta.net/polka/show/all/rss",
groovy:000> "/opt/jnode/plugins/rss.xml", 100);
===> null
groovy:000> jnode.orm.ORMManager.get(jnode.dto.Link.class).getAll().each {
groovy:000> console.println "${it.linkName} - ${it.linkAddress}" }
Sergey Dorofeev - 2:5020/12000
Dmitriy Tochansky - 2:5030/1111
Michael Dukelsky - 2:5020/1042
Kirill Kaplin - 2:5020/837
Vitaly Kremnev - 2:5020/1754
Kirill Temnenkov - 2:5020/828.1
Kirill Temnenkov - 2:5020/828.17
Alexey Gorbunov - 2:5020/828.10
Sergey Streltzov - 2:5020/828.16
Kostya Konuhov - 2:5020/828.33
Evgenij Masherov - 2:5020/828.46
Alla Kuznetsova - 2:5020/828.61
Alexander Listratenkov - 2:5020/828.67
Maxim Sharygin - 2:5020/828.91
Dmitry Korzhenevsky - 2:5020/828.133
RSS Poster - 2:5020/828.333
Sergey Kochergin - 2:5020/828.443
Sergey Litvinsky - 2:5020/828.529
Ivan Kulibin - 2:5020/828.744
Yaroslav Ivashkevich - 2:5020/828.614
Maxim Sokolsky - 2:5020/828.777
Pavel Polakow - 2:5020/828.778
Constantine Ljapin - 2:5020/828.828
Alexander Muzafarov - 2:5020/828.973
Maksim Kotov - 2:5020/828.1024
Andrey Samoylov - 2:5020/828.1102
Alexander Shooshpanov - 2:5020/828.1337
Kostik Malkov - 2:5020/828.1373
Ilya Pavlihin - 2:5020/828.1973
Vladimir Fonarev - 2:5020/2160
Serge Pustovoitoff - 2:5020/828.18
Svetlana Belkina - 2:5020/828.123
Karina Tarasyan - 2:5020/828.7
Semen Lysov - 2:5020/828.19
Sergey Vturin - 2:5020/828.49
Vlad Drogelbeher - 2:5020/828.64
Serge Nesterovich - 2:5020/828.42
Ivan Agarkov - 2:5020/849
groovy:000> :help

For information about Groovy, visit:
    http://groovy.codehaus.org

Available commands:
  :help      (:h ) Display this help message
  ?          (:? ) Alias to: :help
  :exit      (:x ) Exit the shell
  :quit      (:q ) Alias to: :exit
  import     (:i ) Import a class into the namespace
  :display   (:d ) Display the current buffer
  :clear     (:c ) Clear the buffer and reset the prompt counter.
  :show      (:S ) Show variables, classes or imports
  :inspect   (:n ) Inspect a variable or the last result with the GUI object browser
  :purge     (:p ) Purge variables, classes, imports or preferences
  :edit      (:e ) Edit the current buffer
  :load      (:l ) Load a file or URL into the buffer
  .          (:. ) Alias to: :load
  :save      (:s ) Save the current buffer to a file
  :record    (:r ) Record the current session to a file
  :history   (:H ) Display, manage and recall edit-line history
  :alias     (:a ) Create an alias
  :set       (:= ) Set (or list) preferences
  :register  (:rc) Registers a new command with the shell
  :doc       (:D ) Opens a browser window displaying the doc for the argument

For help on a specific command type:
    :help command

groovy:000> :exit
Connection closed by foreign host.
[fido@fido828 ~]$
>───═══ Куть офф "Windows Clipboard" ═══───

 То есть я зашел телнетом с хоста (из соображений безопасности можно зайти только с localhost), выполнил скрипт

>───═══ Куть он "Windows Clipboard" ═══───
rsshelper.postNewsToEchoarea("Hовые впечатления на Флибусте", "828.rss.flibusta.ru", "http://flibusta.net/polka/show/all/rss", "/opt/jnode/plugins/rss.xml", 100);
>───═══ Куть офф "Windows Clipboard" ═══───

 (это у меня есть такой хелпер, который исползуется в скриптах)

 Потом выполнил простой скрипт на groovy:


>───═══ Куть он "Windows Clipboard" ═══───
jnode.orm.ORMManager.get(jnode.dto.Link.class).getAll().each { console.println "${it.linkName} - ${it.linkAddress}" }
>───═══ Куть офф "Windows Clipboard" ═══───

 то есть я воспользовался классом QRMManager (без всякой дополнительной регистрации хелпера), получил всех линков и вывел небольшой отчет "имя линка - адрес".

 "родное" println groovy пишет в лог, но можно воспользоваться хелпером console - у него есть методы print и println. Этот хелпер "встроенный", его регистрировать не надо.

 У меня есть еще идея написать какой-нибудь DSL попроще, чтобы можно было из консоли рулить нодой, но это как-нибудь потом.

 Для тех, кто дочитал до конца -

 скачать дистрибутив: http://temnenkov.ru/jnode/jnode.groovyShell-1.0-dist.zip,

контрольные суммы:
 http://temnenkov.ru/jnode/jnode.groovyShell-1.0-dist.txt

>───═══ Куть он "Windows Clipboard" ═══───
CRC32: 40E90342
MD5: 1ED031B948E67517EE52205FF7359FDE
SHA-1: D1D68B7F5E797F143C30E5B1627BDD12B728F10F
>───═══ Куть офф "Windows Clipboard" ═══───

 Исходники: https://github.com/Manjago/jnode-groovy-console

 Установка:
1) распаковать, забросить в директорию с jar-ками на jnode файлы из директории jnode/lib, то есть groovy-all-2.3.1.jar,
jansi-1.11.jar, jline-2.11.jar, jnode.groovyShell-1.0.jar.
2) В конфигурационном файле jnode добавить строку
 groovyConsole.listenPort=3113

 Можно указать другой порт, по выбору.

3) Перезапустить jnode

 После этого можно с того же хоста заходить telnet-ом

С уважением - Kirill
=============================================================================

--- GoldED+/W32-MINGW 1.1.5-b20120515
* Origin: Esquire Station (2:50/15)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.026610 секунды