LINUX.ORG.RU

Extended Man или Велосипедостроение

 , ,


0

1

Решил запилить скрипт, который позволит смотреть документацию из различных источников.
С помощью скрипта можно посмотреть документацию (или результаты поиска) в:

  • man (из определенной секции)
  • Wikipedia (в текстовом варианте)
  • DuckDuckGo (в текстовом варианте)
  • Wikipedia (ч/з Firefox)
  • Google (ч/з Firefox)
  • DuckDuckGo (ч/з Firefox)

Для работы скрипта требуются:

  • curl
  • html2text

Используется он следующим образом:

usage: eman -m|-w|-d|-ms|-fw|-fg|-fd|-h "subject" [ru|en|...] [man section]
       -m  - man
       -w  - Wikipedia (select language)
       -d  - DuckDuckGo
       -ms - man (select section)
       -fw - Wikipedia (via Firefox) (select language)
       -fg - Google (via Firefox)
       -fd - DuckDuckGo (via Firefox)
       -h  - show help

Распространяется под MIT License (eman -w "MIT License" ru). Все замечания и пожелания будут с радостью мною приняты и обработаны.
Идея создать такой скрипт пришла ко мне ВНЕЗАПНО, когда я смотрел на этот комментарий.

Скрипт v1



Последнее исправление: qzxcvbnm (всего исправлений: 2)

Примеры:

eman -m ls
eman -ms exit 2
eman -ms exit 3
eman -w "linux.org.ru" ru
eman -fg "Hello, world!"

qzxcvbnm
() автор топика

На гитхаб положи, а? По описанию вроде штука удобная.

Lilly
()

2 Lilly; 2 Gotf
Залил на гитхаб и обновил ссылку.

qzxcvbnm
() автор топика

-fw - Wikipedia (via Firefox) (select language)

А если нет лисы? Захардкоживать такое - это моветон, надо определять дефолтный браузер и запускать через него.

hippi90 ★★★★★
()
Ответ на: комментарий от hippi90

Определять самому нет необходимости. Проще либо пытаться использовать переменную окружения $BROWSER, либо запускать через xdg-open (также, если он есть).

xaizek ★★★★★
()

[developer]
Полезная вещь, но пригодится в основном VimоEmacsоSublimeрам. Во многих IDE подобная фишка есть.
[/developer]
А если в поиске каких-либо не-дев-вещей, очень даже полезно :) спасибо.

DeadEye ★★★★★
()
Ответ на: комментарий от xaizek

А разве ещё остались дистрибутивы без xdg-open (ну кроме сборок для всяких роутеров, телевизоров и холодильников, разумеется)?

// ВНЕЗАПНО, оно даже в МСВС есть (сам в шоке).

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от xaizek

Определять самому нет необходимости. Проще либо пытаться использовать переменную окружения $BROWSER, либо запускать через xdg-open (также, если он есть).

К черту подробности!© Главное, надо из кода выкинуть хардкод.

hippi90 ★★★★★
()
Ответ на: комментарий от xaizek

Спасибо, надо будет исправить. А еще, вроде, есть какой-то x-www-browser (?), который является линком на браузер по умолчанию.

qzxcvbnm
() автор топика
Ответ на: комментарий от hobbit

А разве ещё остались дистрибутивы без xdg-open

Я просто не увидел ничего linux-специфичного, и подумал, что скрипт могут запустить где-нибудь вроде макоси (может не лучший пример, просто знаю, что там open за это отвечает). Либо на каком-нибудь сервере, где xdg-open может не быть.

xaizek ★★★★★
()
Ответ на: комментарий от qzxcvbnm

Быстрый поиск показал, что команда x-www-browser специфична для Debian-based систем (и, возможно, есть gnome-аналог при наличии Gnome).

xaizek ★★★★★
()
Ответ на: комментарий от joy4eg

Extended Man v3

Внимание! Вышла версия 3. Теперь вместо if используется case, а также добавлена благодарность тем, кто помог сделать эту программу лучше.

qzxcvbnm
() автор топика

Как насчет того, чтобы сделать какой-нибудь ключ умолчательным? Я бы предложил «m», то есть без ключей «eman» ведет себя как «man»

buddhist ★★★★★
()
Ответ на: комментарий от buddhist

Можно, но я боюсь, что это будет немного костыльно. Придется проверить количество параметров и если это количество равно единице (т.е. нам передали только «subject», хотя не факт, ведь могли просто забыть указать «subject», а место поиска оставить), то вывести информацию из man'а.
Но я попробую, т.к. идея хорошая.

qzxcvbnm
() автор топика
Ответ на: комментарий от buddhist

Extended Man v4

Внимание! Вышла версия 4. Теперь местом поиска по умолчанию является man, если оно не указано в параметрах. Добавлена дополнительная проверка на количество параметров при поиске в Wikipedia.

qzxcvbnm
() автор топика

Я предлагаю использовать нижний регистр ключей (-m, -w, -d) для текстовых версий и верхний (-G, -W, -D) для html-версий вывода.

dumka ★★
()
Последнее исправление: dumka (всего исправлений: 2)
Ответ на: комментарий от undertaker

Спасибо, надо будет поправить.
2 dumka Спасибо, надо тоже будет поправить.

qzxcvbnm
() автор топика
Ответ на: комментарий от DeadEye

Полезная вещь, но пригодится в основном VimоEmacsоSublimeрам.

не нужно. для vim'а есть просто :!man, ну и куча плагинов на эту тему. Для емакса вроде тоже.

emulek
()
Ответ на: комментарий от emulek

Посмотрел, можно реализовать. Спасибо.

qzxcvbnm
() автор топика
Ответ на: комментарий от emulek

Extended Man v5

Внимание! Вышла версия 5. В качестве места поиска добавлен info.

qzxcvbnm
() автор топика
Последнее исправление: qzxcvbnm (всего исправлений: 1)
Ответ на: комментарий от anonymous

Аргументы у опций, произвольный порядок, да много чем.

undertaker ★★
()
Ответ на: комментарий от anonymous

чем это лучше простого case?

зачем собирать из говна и палок свой велосипед?

emulek
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.