Отправка в twitter последней введённой строчки в терминале
Бывает так, что, используя twitter, (если Вы вдруг не знаете, что это такое, то можете проходить мимо; если не знаете, но стало интересно, кликайте сюда) хочется на ответ "what are you doing now" скопипастить ту команду, которая была выполнена в оболочке. Чтобы сделать это стандартными средствами, через браузер, нужно слишком много телодвижений, поэтому это не наш Путь. В связи с этим хочется предложить пользователям twitter'а (ну и заодно операционных систем семейства GNU/Linux) скрипт, выполнение которого отправляет последнюю введённую в терминале команду в Ваш twitter-аккаунт:
> $любимый_текстовый_редактор twitshСкопируем строчки:
#!/bin/bash # twitsh - twitting last executed command from shell (c) 2008 #запоминаем логин login="my_twitter_login"; #пароль password="my_twitter_password"; #если Вам не хочется хранить пароль в открытом виде, #то в качестве альтернативы подойдёт строка: #read -s -p "Enter twitter password: " password; #во втором случае каждый раз при выполнении скрипта необходимо будет вводить пароль #файл истории команд от используемого шелла histfile="/home/user/.zsh_history"; #символ приглашения к вводу команд symbol="> "; #символ приглашения к вводу команд #подсчёт количества строк... line=`cat "$histfile" | wc -l`; #...для определения предпоследней введённой команды #(последней всегда будет запуск данного скрипта) cmd=`cat "$histfile" | sed -ne $(($line-1))p`; #составление строки для отправки tweet="$symbol $cmd"; #в данном случае, отправка делается через curl #от Вашего логина данная команда удалённо обновит xml-файл, #отвечающий за ваши сообщения + избавляемся перенаправлением ненужного вывода в /dev/null curl -u $login:$password -d status="$tweet" http://twitter.com/statuses/update.xml > /dev/null if [[ "$?" == 0 ]]; then #если всё прошло удачно, сообщаем об этом echo "Last command has been successfully twitted."; else #если нет - тоже сообщаем echo "Error within twitting last command..." exit 1; fi exit 0;
Сохраняем, закрываем, делаем исполняемым:
> chmod a+x twitshПроверяем:
> hello from command line! hello: extra operand: from Try `hello --help' for more information. > ./twitsh % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 770 100 751 0 19 906 22 --:--:-- --:--:-- --:--:-- 1323 Last command has been successfully twitted. >
Открываем браузер, заходим на свою страницу в твиттере и видим то, что было введено несколько секунд назад.
Несколько замечаний:
1. отправляются не только выполненные команды, а всё, что Вы введёте и после чего нажмёте .
2. от команд вида application && other_application отправляется только первая часть, т.е. application (однако с конвейерами всё хорошо)
3. проблема с русккими буквами - некоторые буквы отображаются другими символами; похоже, twitter не подозревает о существовании юникода.
4. иногда отправка подтормаживает - появление сообщения об успешной публикации порой появляется через 5-10 секунд.
Happy twitting :-)
- 1370 просмотров
Страница для печати


я думаю, что товарищам линуксоидам будет интересна православый вариант твиттера - джуйк, весь основной функционал которого доступен через джаббер бота.
Замените строку
на
Во втором случае, при выполнении ./twitsh при запущенном pidgin'е на juick через juick-акканут в ростере будет отправляться, опять таки, последняя введённая в терминале команда :-)
@stfoo меня опередил. twitter - не актуально. http://juick.com - наш выбор
Отправить комментарий