LXF136:Что за штука
Материал из Linuxformat
|
|
|
Что за штука… Google CL?
- Google стало тесно в рамках web-браузера. Боб Мосс рассказывает о новом инструменте командной строки: теперь документы Google Docs доступны прямо из системной оболочки.
- Ну вот, в предыдущих номерах говорилось то о WebM, то о Chrome OS, то об Android — а сейчас о 'Google CL. Не переименовать журнал в Google Format?
- Нет, просто Google в последнее время выпускает очень много продуктов с открытым исходным кодом вообще и для Linux в частности. Если всемогущий интернет-гигант разрабатывает программы и вкладывается в развитие свободной ОС, выигрывает вся экосистема Linux – и как же не обратить на это внимание?
- Уговорили. Итак, рассказывайте: что же такое Google CL?
- Google CL (или Google Command Line, если полностью) – это пакет, который можно установить на любой дистрибутив Linux. Он позволяет выполнять различные операции со службами Google. Будь это выгрузка фотографий, отправка поста в блог или добавление нового события в календарь – всё можно сделать единственной строчкой в терминале или автоматизировать с помощью сценария оболочки.
- А зачем Google всё это? Продукт предназначен для узкой ниши, а времени на разработку явно отнял немало...
- Дело в том, что Google CL был изначально создан Google для использования своими же сотрудниками. Но, осознав общественную значимость продукта, Google разместил его в службе хостинга проектов Google Code и открыл доступ каждому, кто захочет использовать, разрабатывать и совершенствовать проект.
- Достойно уважения! И какие службы поддерживаются?
- Наверное, вам будет приятно узнать, что с Google Calendar, Google Docs и контактами Gmail можно работать в терминале. Одной строкой, например, google calendar add “Встреча в офисе завтра в полдень” можно добавлять события в календарь. Подобные действия можно выполнять с файлами, хранящимися в Google Docs и контактами, которые вы, вероятно, синхронизируете в службе Gmail.
- Фантастика! Полагаю, почта Gmail поддерживается тоже?
- К сожалению, служба web-почты Google не поддерживается – но большинство почтовых клиентов для Linux в той или иной степени совместимы с интерфейсом командной строки, и в теории не очень трудно добавить недостающее звено самостоятельно. Проще всего взять Mutt и Alpine (они в любом случае текстовые), но популярные клиенты типа Evolution и связанные с ними фоновые демоны тоже можно вызывать через терминал или сценарий оболочки – например, для отправки сообщений или проверки непрочитанной почты.
- Хорошо, а какие ещё службы поддерживаются?
- Поддерживается Blogger: отправлять посты в свой блог можно почти так же, как добавлять события в календарь. Вот пример команды: google blogger post --blog “Personal Blog” --tags “linux, examples, fun” post_text.html Здесь мы выбрали свой блог, приложили к посту тэги, затем присоединили HTML-файл соответствующего содержания. Возможно присоединение видео- и фотоматериалов, но они должны быть размещены где-нибудь вовне: на время написания статьи импорт таких материалов вместе с текстом был недоступен.
- Но голого текста мне мало. Как насчёт прочего контента — видео, фотографий?
- Для выгрузки видео существует поддержка YouTube, а для размещения изображений – Picasa. Чтобы создать альбом и импортировать каталог изображений в Picasa, достаточно набрать команду google picasa create --title “Крутой альбом” ~/путь/к/крутому/альбому/*.jpg
- А как я могу разнообразить отправляемую информацию?
- Понятно, что инструмент командной строки не может «увидеть» контент в Сети (хотя на это способен web-браузер Lynx текстового режима). Но можно быстро и легко создать пост в Blogger в комплекте с заголовком, темой, тэгами и содержимым, которое отправится в тело поста. Видео на YouTube выгружается как обычно – были бы соответствие форматов и заголовок. Фотографии на Picasa тоже можно выгружать в сопровождении тэгов.
- Наверное, при таком потенциале для каждой службы можно создавать крутые вещи?
- Конечно. Скрипт оболочки – просто текстовый файл с расширением .sh и командами терминала внутри. Первая команда для исполнения располагается вверху, последняя – внизу; возможна также передача параметров в сценарий (в форме $n, где n – номер параметра). С помощью скрипта несложно автоматизировать размещение видео- и фотоконтента, а затем создать пост в блоге со ссылкой на этот контент в соответствующем тексте. Можно создавать задачу в Google Calendar при каждом создании нового пункта To-Do – или вписывать регулярное событие ежемесячно до тех пор, пока сценарий будет действовать. В общем, этот простой инструмент можно использовать как угодно, лишь бы извлечь максимум пользы из учётной записи Google. Подписчики журнала могут подробнее узнать о написании сценариев оболочки из серии учебников, начатой в LXF135.
- Люблю Linux, но вынужден сохранять двойную загрузку с Windows. Совместим ли Google CL c другими платформами?
- Google CL распространяется как Deb-пакет, пригодный для Ubuntu и дистрибутивов на базе Debian. В прочих дистрибутивах его можно установить из исходного кода, нужна только зависимость gdata-python-client. Чтобы использовать Google CL на Windows, сначала установите Google Data API и Python, а затем следуйте руководству, размещенному в блоге http://publicint.blogspot.com/2010/06/setup-googlecl-on-winxp.html.
- Будут ли существующие приложения Linux лучше работать со службами Google?
- Возможно. На время написания статьи Google CL только что вышел, но к тому моменту, когда вы будете её читать, пакет, возможно, попадет в репозиторий вашего дистрибутива и в виде зависимости многих настольных приложений: диспетчеров фотографий, почтовых и блоговых клиентов и т. п. Куски кода Google CL могут даже встроить прямо в исходный код приложений – но только время покажет, окажется ли новый инструмент нишевым или распространится повсеместно.
- ...и мы увидим новые приложения Linux, работающие для него оболочкой?
- Опять же мы с вами фантазируем, но написать оболочку для этой службы на GTK или Qt 4 тривиально. Как мы с вами уже узнали, извлечь максимальную пользу из этого ПО помогут скрипты оболочки и crontab. Можно использовать Google CL для размещения контента в Интернете без запуска браузера, а также для автоматизации и планирования действий, что свидетельствует о гибкости и мощи инструмента.
- Рвусь попробовать сам! Где добыть более подробные сведения?
- Загляните на главную страницу проекта – http://code.google.com/p/googlecl, где размещены развернутые wiki-материалы, перечень известных ошибок и пакеты для загрузки. Вводный блог-пост находится на http://google-opensource.blogspot.com/2010/06/introducing-google-command-line-tool.html: там приведено подробное представление Google CL и пара примеров на пробу.