- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
#!/bin/bash
case $1 in
u|use)
case $2 in
e) $EDITOR /etc/portage/package.use
;;
s) grep -n --color "$3" /etc/portage/package.use
;;
d)
if echo "$3" | grep -q -e "[1-9]"
then
DELVAR="`echo $3 $4 $5 $6 $7 $8 $9 | sed 's/ /\n/g'`"
echo "Do you want delete next line(s):
`echo "$DELVAR" | sed 's/$/!d/g' | xargs -n 1 | while read line ; do
sed "$line" /etc/portage/package.use -i
done`
Yes/No?"
read "answer"
case "$answer" in
y|yes) echo "$DELVAR" | sed 's/$/d/g' | xargs -n 1 | while read yesno ; do
sed "$yesno" /etc/portage/package.use -i
done
;;
esac
else
DELVAR="`grep -n --color "$3" /etc/portage/package.use | cut -d":" -f1`"
echo "Do you want delete next line(s):
`grep -n --color "$3" /etc/portage/package.use`
Yes/No?"
read "answer"
case "$answer" in
y|yes) echo "$DELVAR" | sed 's/$/d/g' | xargs -n 1 | while read yesno ; do
sed "$yesno" /etc/portage/package.use -i
done
;;
esac
fi
;;
*) echo "$2 $3 $4 $5 $6 $7 $8 $9" >> /etc/portage/package.use
;;
esac
;;
i) euses $3
;;
s) eix "$3"
;;
sync) sudo layman --sync-all ; emerge --sync ; eix-update
;;
U) exec emerge -vauND world
;;
i) exec emerge -va "$2 $3 $4 $5 $6 $7 $8 $9"
;;
mkconf) sudoedit /etc/make.conf
;;
*|-h|--help) echo "Использование: pkg [ключ] [параметры ключа]
u [USE] - операции с USE-флагами в файле /etc/portage/package.use
e - открыть файл в редакторе из '\$EDITOR' ("$EDITOR")
s - поиск в файле grep'ом
d - удаление строк из файла (в качестве параметра принимаются как номера строк, так и название пакета/флага)
i - просмотр информации о флагах (с помощью euses)
* - все иные значения будут записаны в файл
k [KEYWORDS] - операции с keywords-масками в файле /etc/portage/package.keywords
e - открыть файл в редакторе из '\$EDITOR' ("$EDITOR")
s - поиск в файле grep'ом
d - удаление строк из файла (в качестве параметра принимаются как номера строк, так и название пакета/флага)
* - все иные значения будут записаны в файл
i - установка пакета (emerge -av)
s - поиск по базе пакетов (с помощью eix)
sync - синхронизация баз layman, emerge и запуск eix-update
U - обновление системы (emerge -vauND world)
mkconf - открыть для редактирования файл /etc/make.conf (используя sudoedit)"
;;
esac
Нашел свой старый код.. Когда-то от нечего делать пытался написать некую обёртку ко всяким джентовским утилитам. До конца так и не дописал, были некоторые проблемы с кодом, которые мне решать было лень. Но сейчас залез в тот код и ужаснулся..
P.S. Файл немного урезан от оригинала, т.к. те же действия повторяются для разных файлов.
nil 16.05.2010 21:02 # 0
По мне так что параметры скрипта запоминать, что параметры утилит, один хрен. Плюс средства автодополнения...
Но код да... Хитровыдуманный:)
Iliander 16.05.2010 21:09 # 0
Параметры скрипта все же несколько проще запоминать, т.к. если сам его пишешь — есть хоть какая-то своя логика. А вообще, он больше писался, чтобы объединить множество инструментов воедино.
nil 16.05.2010 21:17 # 0
А потом руки сами уже набивают автоматически. Я в свое время как с VMS-а пришел, тоже зависел от прокладок всяких, хелперов да алиасов, усилием воли отказался — они загоняют в жесткие рамки, если Вы понимаете, о чем я.