zed.0xff.me

Gentoo: nemerge (удобный скрипт для установки обновлений)

Наверное, у всех есть свой любимый способ обновления установленных пакетов в Gentoo.
Возможно, у кого-то еще нет.
Возможно, это запуск каждый раз “emerge -Nutva —deep —with-bdeps y world”, или чего-то подобного.
Прилагаемый скрипт призван несколько сократить синтаксис команды обновления до состояния достаточно легкой запоминаемости и набираемости.

Предлагаю назвать его “nemerge” и положить в ~/bin или другое удобное для вас место :)

Скрипт поддерживает два ключа запуска:
  —yes  – автоматически отвечать “да” на запрос emerge “Would you like to merge these packages? [Yes/No]
  —sync – перед установкой обновить portage и, если установлен, layman

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
#!/bin/sh

# "nemerge" script from http://zed.0xff.me/nemerge
# call me with "-y" (or --yes ) to auto-merge, without confirmations
# call me with "-s" (or --sync) to sync a portage tree (and layman, if installed) before updating
# call me with both to auto sync & update

ARGS=""
DO_SYNC=0
DO_AUTO=0

if [ `whoami` != "root" -a -x /usr/bin/sudo ]; then
        SUDO_CMD="/usr/bin/sudo"
else
        SUDO_CMD=""
fi

for v in "$@"; do
        if [ $v = "-s" -o $v = "--sync" ]; then
                DO_SYNC=1
        elif [ $v = "-y" -o $v = "--yes" ]; then
                DO_AUTO=1
        elif [ $v = "-sy" -o $v = "-ys" ]; then
                DO_AUTO=1
                DO_SYNC=1
        else
                ARGS="${ARGS} $v"
        fi
done

if [ $DO_SYNC -eq 1 ]; then
        if [ -x /usr/bin/layman ]; then
                echo "[.] synching layman.."
                $SUDO_CMD /usr/bin/layman -S
        fi
        echo "[.] synching portage.."
        $SUDO_CMD emerge --sync
fi

if [ $DO_AUTO -eq 1 ]; then
        echo "[.] merging automatically.."
        $SUDO_CMD emerge -Nutv --deep --with-bdeps y $ARGS world 
else
        echo "[.] merging interactively.."
        $SUDO_CMD emerge -Nutva --deep --with-bdeps y $ARGS world 
fi