Home

Advertisement

Previous Entry | Next Entry

apt: показ новых пакетов

  • Apr. 21st, 2008 at 12:42 AM
feterny-bird
Вещь сия есть логическим продолжением вот этого: http://jackyf.livejournal.com/94531.html

В общем, апдейты - это хорошо, но я захотел получать ещё и список новых пакетов в репозитории.
Сказано - сделано:

#!/bin/sh

TMP_UPDATES_BEFORE=/tmp/my-apt-updates-before
TMP_UPDATES_AFTER=/tmp/my-apt-updates-after
TMP_NEW_BEFORE=/tmp/my-apt-new-before
TMP_NEW_AFTER=/tmp/my-apt-new-after

# $1 - output
function get_new()
{
aptitude search ?new --display-format "%10p - %80d" --width 120 > $1 2>/dev/null
}

# $1 - output
function get_updates()
{
apt-show-versions -u | sort > $1
}

# $1 - first param
# $2 - second param
function diff_cmd()
{
diff --minimal $1 $2 | grep -E "^[<>]" | sort
}

echo -n "Getting pre-new... "
get_new $TMP_NEW_BEFORE
echo "[done]"

echo -n "Getting pre-updates... "
get_updates $TMP_UPDATES_BEFORE
echo "[done]"

echo "Updating:"
sudo aptitude update
echo "Update complete."

echo -n "Getting post-new... "
get_new $TMP_NEW_AFTER
echo "[done]"

echo -n "Getting post-updates... "
get_updates $TMP_UPDATES_AFTER
echo "[done]"

echo "-------"
echo "Updates"
echo "-------"
diff_cmd $TMP_UPDATES_BEFORE $TMP_UPDATES_AFTER | sed s/upgradeable\ from/-/g

echo
echo "---"
echo "New"
echo "---"
diff_cmd $TMP_NEW_BEFORE $TMP_NEW_AFTER

Tags:

Comments

( 3 comments — Leave a comment )
[info]efault wrote:
Apr. 20th, 2008 10:39 pm (UTC)
Все имена файлов лучше (т.е. _нужно_) брать в кавычки, иначе для имён с пробелами скрипт не будет работать. Например так:

diff --minimal "$1" "$2" | grep -E "^[<>]" | sort

get_new "$TMP_NEW_BEFORE"
[info]jackyf wrote:
Apr. 20th, 2008 11:02 pm (UTC)
Согласен. Хотя в данном случае некритично :)
[info]efault wrote:
Apr. 20th, 2008 11:05 pm (UTC)
просто демонстрирую шишку от грабель ;)
( 3 comments — Leave a comment )