четверг, 30 июня 2011 г.

Скрипт для Nautilus. Отправка документов в GoogleDocs

Работа с Google через терминал не совсем комфортна и оправдана. Удобней было бы отправлять документы через Nautilus. Озадачившись этим вопросом, нагуглил несколько скриптов по обработке файлов. Убрал ненужные строки, добавил своих и получилось нижеследующее:

#!/bin/bash

IFS=$'\n'
i=0
declare -a array

for name in "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"; do
array[$i]=$name
i=$(($i + 1))
done

i=0

for file in ${array[@]}; do
google docs upload $file
i=$(($i + 1))
done

unset IFS

Подробности:

IFS=$'\n' - задаем в качестве разделителя перенос строки
i=0 - переменная будет использоваться в качестве индекса для массива
declare -a array - объявляем массив array
for name in "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"; do - в переменную name пишем пути до выделенных файлов
array[$i]=$name - записываем полученный путь в массив с индексом i
i=$(($i + 1)) - увеличиваем индекс на единицу
done - конец цикла
i=0 - сбрасываем индекс в ноль
for file in ${array[@]}; do - в переменную file читаем элементы массива
google docs upload $file - отправляем file в GoogleDocs
i=$(($i + 1)) - увеличиваем индекс на единицу
done - конец цикла
unset IFS - сбрасываем разделитель

Чтобы скрипт заработал, сохраняем его в ~/.gnome2/nautilus-scripts. Теперь, выделив документы или папку для отправки, достаточно выбрать соответствующий пункт в контекстном меню и файлы будут отправлены в GoogleDocs.

Казалось бы все - сделал и пользуйся. Но не обошлось и без ошибок - скрипт выборочно не желает отправлять документы с русскими буквами и большим уровнем вложенности.


Послесловие
Настройка терминала увлекает гораздо больше, чем настройка и оптимизация windows, реестра, хотя раньше я и не знал, что это такое - "Терминал". Изучать консоль в Windows не было ни желания, ни необходимости.

Смотри также
GoogleDocs. Работаем через терминал

2 коммент.:

  1. Хотел спросить а как такое чудо к Thunar прикрутить. Он по умолчанию в XFCE4. Зарание благодарен.

    ОтветитьУдалить
  2. Mos, не пользовался, так что сказать не смогу

    ОтветитьУдалить