Посты с тегом bash
roignac 23.04.2010 01:02

СкриптыKopete Pipe и TinyURL

Очень понравилась фишка из Choqok - автоматическая сокращалка URL. Так как иногда приходится отсылать длинные URL (привет Sharepoint!), то похожее понадобилось и в Kopete.

Выяснилось, что у Kopete есть удобный плагин - Pipes, который позволяет внешним программам обрабатывать сообщения.

От слов - к делу.

Основа - скрипт на bash для замены в тексте сообщения длинных URL на короткие. Для этого скрипта нужен curl (можно сделать вариант на wget и т.д.). Сервис сокращения - "классический" TinyURL.

Создаем скрипт link_shorten.sh:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#!/bin/bash

# Получаем сообщение из stdin
read messageText

# Ловим все URL
URLs=`echo $messageText | grep -o 'http://<^ >*'`
for url in ${URLs}; do
    # Получаем новую URL от TinyURL.com
    newURL=`curl -s http://tinyurl.com/api-create.php?url=${url}`
    # Заменяем в тексте все такие URL на новые
    messageText=`echo $messageText | sed "s!${url}!${newURL}!g"`
done

# Передаем сообщение в stdout
echo $messageText

Теперь пора настроить Kopete.
Для этого идём в настройки -> модули -> Pipes (включаем). В настройках модуля нажимаем "Добавить", указываем путь к скрипту. Теперь у пайпа можно настроить следующие параметры:
Ввод/Вывод - указывается какие сообщения обрабатывать. В данном случае - только исходящие. Впрочем, если вам часто шлют нечитабельные ссылки - то можно включить обе настройки.
Содержимое канала - какую инфу передовать в скрипт - Plain, HTML или весь XML. Обычно достаточно Plain, но если требуется обрабатывать внутреннюю инфу сообщения - то стоит изучить формат сообщений. К примеру, можно написать скрипт, который будет обрабатывать имя собеседника.
Скрипт, соответственно, можно использовать как отдельно, так и для других клиентов (или целей).
Код скрипта, очевидно, не идеален - надеюсь, кто-нибудь в комментариях сделает попроще и покороче.

Идеи по улучшению скрипта:
Использовать wget вместо curl (в дефолтной Убунте, например, нет curl)
Использовать другие сервисы сокращения
Сокращать только ссылки длиннее n символов
Полностью.
+ 3 -
3
doraneko 22.04.2010 07:21

СкриптыФото для самых ленивых

Скриптик для тех, кто фоткается на вебку и кому надоело нажимать на кнопочки =)

Полностью.
+ 2 -
4
idler 09.04.2010 02:56

СкриптыИ снова ... публикация скришота в Интернет

Где-то я уже писал об этом, но это была другая версия.
Я человек ленивый, а потому жать PrintScreen, затем сохранять, загружать по ftp/ssh на хостинг меня всегда сильно ломало. У меня давно лежал скриптик, но сегодня мне было не лень и я его несколько допилил. По команде из консоли скрипт публикует состояние вашего экрана на вашем хостинге и заносит ссылку в мышиный буфер обмена, параллельно открыв ее в браузере.
Полностью.
+ 3 -
8
02.04.2010 23:55

digiwhiteКак найти и удалить пустые директории и файлы

Оригинал
Вопрос: Как я могу найти пустые директории, которые не содержат ни одного файла в Linux? А так же, как я могу найти все пустые файлы (те, которые имеют нулевую длину)?

Ответ: Вы можете использовать unix команду find, чтобы получить список всех пустых файлов и директорий так, как это описано ниже.
Полностью.
+ 9 -
33
s2h 30.03.2010 17:56

СкриптыОсновы применения Python в администрировании Linux

Небольшая статья от IBM'овцев о том как применять Питон в системном администрировании Linux. Отличия от баша, работа со скриптами.
Полностью.
+ 2 -
6
29.03.2010 15:26

angrycoreПолезные мелочи с использованием DBUS в KDE

D-Bus — это система межпроцессного взаимодействия, разработанная в рамках проекта freedesktop.org. Подробнее можно почитать например на википедии.
В рамках данной заметки D-Bus будет рассматриваться и использоваться исключительно как способ контролировать графические приложения из консоли.
Полностью.
+ 8 -
6
cppmm 18.03.2010 13:21

СкриптыДискриминация по национальному признаку или баним страны.

Так получилось, что понадобилось прикрыть доступ к серверу из некоторых стран. Понимаю, что кровавая гебня и всё такое, но задача есть, надо сделать.
Вот здесь находим архивчик с базой IP-адресов и их национальной принадлежностью. Далее за нас работает небольшой скрипт. Для работы скрипта понадобится дополнительно установить замечательную утилиту ipcalc.
Полностью.
+ 6 -
17
leonder 09.03.2010 07:50

СкриптыЗагрузка скриншотов и изображений в интернет и получение ссылки

Я уже писал про два отдельных скрипта - один для загрузки скриншотов, другой для загрузки файлов из файлового менеджера. Любознательные люди задавали вопросы, старшие опытные товарищи давали советы. В итоге с радостью представляю вашему вниманию усовершенствованную версию скрипта для загрузки изображений в Интернет.
Полностью.
+ 4 -
19
muhas 03.03.2010 13:10

СкриптыУправляем mpd с помощью dmenu

Набросал скрипт для для управления mpd с помощью dmenu, но так как sh очень странный язык который позволяет быстро расширить возможности скрипта, то заодно немного и расширились возможности dmpd

Собственно, основная функция это добавление в плейлист каталога/файла, выбор файла и навигация по текущему плейлиста. Но заодно получилось что можно выполнять любую команду mpc, отчистить текущий плейлист и сразу создать новый...

Писалось для себя, поэтому некоторые моменты в управлении могут кому-то не понравиться (но менять скрипт под себя никто же не запрещает)

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/bin/dash
# некоторые функции управления mpd через dmenu
# в зависимостях dmenu, mpc, dash, awk
# ну и notify какое-нибудь ^_^
# да и что-нибудь типа mpdnotify не помешает (см. конфиг)
################### dmpd - mpd manager ##################
# Version 0.1.1 by muhas [muhas [(a)] muhas.ru] #
#########################################################
# config
BG="#737373"
FG="#e7e3e7"
# команда dmenu без приглашения
DMENU="dmenu -nb $BG -nf $FG -sb $FG -sf $BG -i"
SHOW=mpdnotify #скрипт для показа текущего трека
MUSIC=$HOME/all/muzlo/
ACTIONS="info\nshuffle\nrandom\nstop\nplay\npause" # дополнительные действия для mpc
# /config

# body
if [ .$1 = ."" ]; then # выбираем первоначальное действие
cmd=$(echo "current\nadd\nplaylist\nclear\n$ACTIONS" |$DMENU -p "select action") && $0 $cmd
fi
# ну и дальше уже всё зависит от выбранного действия
if [ .$1 != ."" ];then
case "$1" in
'add') cmd=$(mpc ls | $DMENU -p "select folder")
while [ .$open != ."add" ]; do # скакаем по каталогам
open=$(echo "add\nopen" | $DMENU -p "select action")
if [ .$open != ."add" ]; then
cmd=$(mpc ls "$cmd" | $DMENU -p "select")
[ -f "$MUSIC$cmd" ] && break #если файл то нафига открывать?
fi
done
mpc add "$cmd" && mpc play
;;
'clear') mpc clear
cmd=$(echo "add\nplaylist" | $DMENU -p "select action")
$0 $cmd
;;
'current') cmd=$(mpc playlist --format '%position% %title% by %artist%' | $DMENU -p "select file" |awk '{print $1}')
mpc play "$cmd"
;;
'playlist') cmd=$(mpc lsplaylists| $DMENU -p "select playlist" )
mpc load "$cmd" && mpc play
;;
'info') $SHOW
;;
*) mpc $1
notify-send "`mpc|head -n 1|grep -v volume` " "`mpc |tail -n 1`"
;;
esac
fi
# /body

Кроспост из моего бложика Заметки аскетичного гика
Полностью.
+ 3 -
16
leonder 22.02.2010 02:02

How-to`sЗагрузка изображения из файлового менеджера в интернет и получение ссылки

В файловом менеджере (у меня thunar) настроено "дополнительное действие" в виде собственного скрипта, оно проявляется, как дополнительный пункт в контекстном меню файлов, и работает только для изображений.
* Скрипт значительно улучшен и доведен до ума, новая версия:
http://welinux.ru/work/post/2503
Полностью.
+ 6 -
31
1 2 7 8 9 10 11 12 13 16 17