Командный интерпретатор для .net
От: DaDa Cloun Россия  
Дата: 29.10.09 06:41
Оценка:
Здравствуйте

Реализую одно консольное приложение для .net, и кроме всего прочего хотелось бы в него добавить возможность управления при помощи команд в стиле командных интерпретаторов bash, cmd.exe и т.п. Конечно же, реализовывать самому подобную штуку не очень хочется. Наверняка уже существуют кастомизируемые командные интерпретаторы, просто я плохо искал в интернете. Подскажите пожалуйста, может кто встречался с подобным.

Спасибо
cmd shell bash
Re: Командный интерпретатор для .net
От: Sinclair Россия https://github.com/evilguest/
Дата: 29.10.09 07:06
Оценка:
Здравствуйте, DaDa Cloun, Вы писали:

DC>Здравствуйте


DC>Реализую одно консольное приложение для .net, и кроме всего прочего хотелось бы в него добавить возможность управления при помощи команд в стиле командных интерпретаторов bash, cmd.exe и т.п. Конечно же, реализовывать самому подобную штуку не очень хочется. Наверняка уже существуют кастомизируемые командные интерпретаторы, просто я плохо искал в интернете. Подскажите пожалуйста, может кто встречался с подобным.


DC>Спасибо


Подозреваю, что ты ищешь... PowerShell!.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Командный интерпретатор для .net
От: DaDa Cloun Россия  
Дата: 29.10.09 07:19
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Подозреваю, что ты ищешь... PowerShell!.


Не совсем так.. Да, мне нужен shell, но мне он нужен для моих целей. Т.е. такой шелл, список команд которого мог бы я сам задать. Например, я бы хотел, что бы мое приложение отображало список присоединившихся клиентов, когда админ введет "sh clients", или список просто соединений "sh conn" и т.п.
Re: Командный интерпретатор для .net
От: Vain Россия google.ru
Дата: 29.10.09 07:30
Оценка:
Здравствуйте, DaDa Cloun, Вы писали:

DC>Реализую одно консольное приложение для .net, и кроме всего прочего хотелось бы в него добавить возможность управления при помощи команд в стиле командных интерпретаторов bash, cmd.exe и т.п. Конечно же, реализовывать самому подобную штуку не очень хочется. Наверняка уже существуют кастомизируемые командные интерпретаторы, просто я плохо искал в интернете. Подскажите пожалуйста, может кто встречался с подобным.

Имхо, тебе нужно смотреть в сторону просто парсера командной строки.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[3]: Командный интерпретатор для .net
От: Sinclair Россия https://github.com/evilguest/
Дата: 29.10.09 07:40
Оценка: 2 (1) +1
Здравствуйте, DaDa Cloun, Вы писали:

DC>Не совсем так.. Да, мне нужен shell, но мне он нужен для моих целей. Т.е. такой шелл, список команд которого мог бы я сам задать. Например, я бы хотел, что бы мое приложение отображало список присоединившихся клиентов, когда админ введет "sh clients", или список просто соединений "sh conn" и т.п.

PowerShell — и есть кастомизируемый командный интерпретатор. Состав команд полностью определяется набором загруженных в контекст cmdlet-ов.
То есть, самый кошерный способ — вывернуть твоё приложение "наизнанку", т.е. полностью переписать его в виде cmdlet-ов повершелла.
К примеру, именно так администрируются монстроприложения типа Exchange или Office Communications Server.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Командный интерпретатор для .net
От: DaDa Cloun Россия  
Дата: 29.10.09 08:13
Оценка:
Здравствуйте, Vain, Вы писали:

DC>>Реализую одно консольное приложение для .net, и кроме всего прочего хотелось бы в него добавить возможность управления при помощи команд в стиле командных интерпретаторов bash, cmd.exe и т.п. Конечно же, реализовывать самому подобную штуку не очень хочется. Наверняка уже существуют кастомизируемые командные интерпретаторы, просто я плохо искал в интернете. Подскажите пожалуйста, может кто встречался с подобным.

V>Имхо, тебе нужно смотреть в сторону просто парсера командной строки.

Это у меня уже есть, но суть в том что цикл работы приложение которое я пишу выглядит так: запустил — ... Т.е. мне нужно управлять им в запущенном виде. Состояние свое оно не сохраняет ни в базу ни куда еще. Но иногда нужно вмешаться в деятельность приложения (ведь полную автономию не запрограммируешь). Поэтому мне и нужно командное управление.
Re[4]: Командный интерпретатор для .net
От: DaDa Cloun Россия  
Дата: 29.10.09 08:14
Оценка:
Здравствуйте, Sinclair, Вы писали:

DC>>Не совсем так.. Да, мне нужен shell, но мне он нужен для моих целей. Т.е. такой шелл, список команд которого мог бы я сам задать. Например, я бы хотел, что бы мое приложение отображало список присоединившихся клиентов, когда админ введет "sh clients", или список просто соединений "sh conn" и т.п.

S>PowerShell — и есть кастомизируемый командный интерпретатор. Состав команд полностью определяется набором загруженных в контекст cmdlet-ов.
S>То есть, самый кошерный способ — вывернуть твоё приложение "наизнанку", т.е. полностью переписать его в виде cmdlet-ов повершелла.
S>К примеру, именно так администрируются монстроприложения типа Exchange или Office Communications Server.

Спасибо за терпеливое объяснение. PowerShell штука тяжелая, сходу я не разобрался и не нашел то что мне нужно. Буду изучать.
Re[4]: Командный интерпретатор для .net
От: DaDa Cloun Россия  
Дата: 29.10.09 08:16
Оценка:
Здравствуйте, Sinclair, Вы писали:

DC>>Не совсем так.. Да, мне нужен shell, но мне он нужен для моих целей. Т.е. такой шелл, список команд которого мог бы я сам задать. Например, я бы хотел, что бы мое приложение отображало список присоединившихся клиентов, когда админ введет "sh clients", или список просто соединений "sh conn" и т.п.

S>PowerShell — и есть кастомизируемый командный интерпретатор. Состав команд полностью определяется набором загруженных в контекст cmdlet-ов.
S>То есть, самый кошерный способ — вывернуть твоё приложение "наизнанку", т.е. полностью переписать его в виде cmdlet-ов повершелла.
S>К примеру, именно так администрируются монстроприложения типа Exchange или Office Communications Server.

Есть правда одно требование, вероятно не совместимое с PowerShell — работа приложения под Mono...
Re: Командный интерпретатор для .net
От: mormat Украина mormat.org.ua
Дата: 29.10.09 08:29
Оценка:
Здравствуйте, DaDa Cloun, Вы писали:

DC>Здравствуйте


DC>Реализую одно консольное приложение для .net, и кроме всего прочего хотелось бы в него добавить возможность управления при помощи команд в стиле командных интерпретаторов bash, cmd.exe и т.п. Конечно же, реализовывать самому подобную штуку не очень хочется. Наверняка уже существуют кастомизируемые командные интерпретаторы, просто я плохо искал в интернете. Подскажите пожалуйста, может кто встречался с подобным.


DC>Спасибо


Ну, навскидку ничего особо сложного нет реализовать полностью "ручками"... например, так:
1) единожды запущенное приложение создаёт .NET Remoting server.
2) повторный запуск ищет существующий сервис, если находит — то отсылает ему любые доп. команды, если они имеются конечно. Если сервис не находится — значит сейчас происходит первый запуск, см. п.1.

Выглядит просто...
Пусто
Re: Командный интерпретатор для .net
От: Ziaw Россия  
Дата: 29.10.09 09:55
Оценка:
Здравствуйте, DaDa Cloun, Вы писали:

DC>Здравствуйте


DC>Реализую одно консольное приложение для .net, и кроме всего прочего хотелось бы в него добавить возможность управления при помощи команд в стиле командных интерпретаторов bash, cmd.exe и т.п. Конечно же, реализовывать самому подобную штуку не очень хочется. Наверняка уже существуют кастомизируемые командные интерпретаторы, просто я плохо искал в интернете. Подскажите пожалуйста, может кто встречался с подобным.


Задача делится на редактор командной строки и парсер команд. Это можно попробовать найти готовое.

Парсер достаточно легко реализуется например на Antlr
Еще в качестве парсера можно взять любой динамичский язык под .net. Ближе всего по синтаксису будет наверное руби.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Re[2]: Командный интерпретатор для .net
От: mormat Украина mormat.org.ua
Дата: 29.10.09 10:11
Оценка:
Здравствуйте, mormat, Вы писали:

M>Здравствуйте, DaDa Cloun, Вы писали:


DC>>Здравствуйте


DC>>Реализую одно консольное приложение для .net, и кроме всего прочего хотелось бы в него добавить возможность управления при помощи команд в стиле командных интерпретаторов bash, cmd.exe и т.п. Конечно же, реализовывать самому подобную штуку не очень хочется. Наверняка уже существуют кастомизируемые командные интерпретаторы, просто я плохо искал в интернете. Подскажите пожалуйста, может кто встречался с подобным.


DC>>Спасибо


M>Ну, навскидку ничего особо сложного нет реализовать полностью "ручками"... например, так:

M>1) единожды запущенное приложение создаёт .NET Remoting server.
M>2) повторный запуск ищет существующий сервис, если находит — то отсылает ему любые доп. команды, если они имеются конечно. Если сервис не находится — значит сейчас происходит первый запуск, см. п.1.

M>Выглядит просто...


Пардон, кажется, неверно понял суть проблемы
Пусто
Re[2]: Командный интерпретатор для .net
От: bl-blx Россия http://yegodm.blogspot.com
Дата: 29.10.09 11:01
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Здравствуйте, DaDa Cloun, Вы писали:


DC>>Здравствуйте


DC>>Реализую одно консольное приложение для .net, и кроме всего прочего хотелось бы в него добавить возможность управления при помощи команд в стиле командных интерпретаторов bash, cmd.exe и т.п. Конечно же, реализовывать самому подобную штуку не очень хочется. Наверняка уже существуют кастомизируемые командные интерпретаторы, просто я плохо искал в интернете. Подскажите пожалуйста, может кто встречался с подобным.


Z>Задача делится на редактор командной строки и парсер команд. Это можно попробовать найти готовое.


Z>Парсер достаточно легко реализуется например на Antlr

Z>Еще в качестве парсера можно взять любой динамичский язык под .net. Ближе всего по синтаксису будет наверное руби.

Наверное, можно Microsoft.JScript.JScriptCodeProvider (in Microsoft.JScript.dll) использовать?
Он умеет парсить и компилировать.
El pueblo unido jamás será vencido.
Re[3]: Командный интерпретатор для .net
От: Ziaw Россия  
Дата: 29.10.09 11:16
Оценка:
Здравствуйте, bl-blx, Вы писали:

Z>>Еще в качестве парсера можно взять любой динамичский язык под .net. Ближе всего по синтаксису будет наверное руби.


BB>Наверное, можно Microsoft.JScript.JScriptCodeProvider (in Microsoft.JScript.dll) использовать?

BB>Он умеет парсить и компилировать.

Умеет, но команды на ява скрипте будут так себе выглядеть в шелле.
Тот же руби даcт хороший DSL,

show users
filter users {:state => :suspended} |u| { kill u.id }
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Re[4]: Командный интерпретатор для .net
От: bl-blx Россия http://yegodm.blogspot.com
Дата: 29.10.09 11:30
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Здравствуйте, bl-blx, Вы писали:


Z>>>Еще в качестве парсера можно взять любой динамичский язык под .net. Ближе всего по синтаксису будет наверное руби.


BB>>Наверное, можно Microsoft.JScript.JScriptCodeProvider (in Microsoft.JScript.dll) использовать?

BB>>Он умеет парсить и компилировать.

Z>Умеет, но команды на ява скрипте будут так себе выглядеть в шелле.

Z>Тот же руби даcт хороший DSL,

Z>
Z>show users
Z>filter users {:state => :suspended} |u| { kill u.id }
Z>

Да, пожалуй, руби для шелла попригоднее будет.
Но JScript по другому критерию в первую очередь не проходит — нет поддержки под Mono.
El pueblo unido jamás será vencido.
Re: Командный интерпретатор для .net
От: LuciferSaratov Россия  
Дата: 29.10.09 11:41
Оценка:
Здравствуйте, DaDa Cloun, Вы писали:

DC>...

Как насчет Tool Command Language?
С дотнетом и моно его скрещивают: http://wiki.tcl.tk/6192
Re: Командный интерпретатор для .net
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 29.10.09 20:16
Оценка:
Здравствуйте, DaDa Cloun, Вы писали:

В янусе есть готовая реализация, заодно и с расширяемой инфраструктурой команд. Единственное, из сборки придется руками выдернуть, оно в отдельные проекты не вытащено пока.\r\n
... << RSDN@Home 1.2.0 alpha 4 rev. 1255 on Windows 7 6.1.7600.0>>
AVK Blog
Re[2]: Командный интерпретатор для .net
От: DaDa Cloun Россия  
Дата: 30.10.09 15:46
Оценка: :)
Здравствуйте, AndrewVK, Вы писали:

AVK>В янусе есть готовая реализация, заодно и с расширяемой инфраструктурой команд. Единственное, из сборки придется руками выдернуть, оно в отдельные проекты не вытащено пока.\r\n


Спасибо за ответ, но не могли бы вы дать ссылочку на янус. Дело в том что я впервые слышо про этот проект, а в интернете нашел только спутник сатурна и че-то там в римской мифологии..
Re[2]: Командный интерпретатор для .net
От: DaDa Cloun Россия  
Дата: 30.10.09 16:02
Оценка:
Здравствуйте, LuciferSaratov, Вы писали:

DC>>...

LS>Как насчет Tool Command Language?
LS>С дотнетом и моно его скрещивают: http://wiki.tcl.tk/6192

Спасибо за ответ. Штука мощная, но есть один недостаток — нужно что бы язык был декларативным (типа SQL), а не императивным.
Re[4]: Командный интерпретатор для .net
От: DaDa Cloun Россия  
Дата: 30.10.09 16:03
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Умеет, но команды на ява скрипте будут так себе выглядеть в шелле.

Z>Тот же руби даcт хороший DSL,

Z>show users
Z>filter users {:state => :suspended} |u| { kill u.id }


Вот это выглядит очень круто! Жаль что я в руби не рублю нифига =)
Буду разбираться — спасибо за ответ!
Re[3]: Командный интерпретатор для .net
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 30.10.09 17:02
Оценка:
Здравствуйте, DaDa Cloun, Вы писали:

DC>Спасибо за ответ, но не могли бы вы дать ссылочку на янус. Дело в том что я впервые слышо про этот проект, а в интернете нашел только спутник сатурна и че-то там в римской мифологии..


http://svn.rsdn.ru/svn/Janus/trunk/\r\n
... << RSDN@Home 1.2.0 alpha 4 rev. 1255 on Windows 7 6.1.7600.0>>
AVK Blog
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.