apt: показ новых пакетов
Вещь сия есть логическим продолжением вот этого: 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
В общем, апдейты - это хорошо, но я захотел получать ещё и список новых пакетов в репозитории.
Сказано - сделано:
#!/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