Список URL файлов для устанавливаемых пакетов в Gentoo

Понадобилось мне получить сабж. emerge -pf конечно выдаёт нужную информацию, но она избыточна.
Во-первых, вывод содержит урлы для всех файлов, несмотря на то, что они уже загружены и лежат себе спокойно в distfiles. Во-вторых, мне не нужны урлы зеркал. Я использую только http://gentoo.osuosl.org. Поэтому было принято решение это дело автоматизировать и вывод от лишнего почистить.

Прежде чем написать очередной нетленный однострочник, я обычно гуглю по теме (я лентяй, ага :)). Нашёл именно то, что требовалось. Это 2 скрипта от Алексея Алексеева.
Второй скрипт я немного «допилил». У меня distfiles лежат не в привычном /usr/portage, а в /home (мне так удобнее). Поэтому расположение будем брать из /etc/make.conf. И ещё одна важная деталь. Некоторые файлы необходимо загружать вручную, например javahelp, sun-jdk (до того, как она стала доступна под GPL) и некоторые другие. emerge -pf на таких пакетах пихает в свой вывод сообщения об ошибке и урл, с которого можно скачать файл, предваряя их звёздочкой (*). Из-за этого на сравнении списка файлов с уже загруженными, скрипт мусорит сообщениями типа
list-urls: line 3: [: too many arguments
Чтобы этого не было, звёздочки надо grep`нуть.

Что получилось:

#!/bin/sh
source /etc/make.conf
emerge -pf $* 2>&1 | grep -v '\*' | awk '/tp:/ { print $1 }'| while read f; do [ ! -s ${DISTDIR}/${f##*/} ] && echo $f; done | sort -u

Как использовать:

list-urls world

Можно передавать дополнительные параметры для emerge

list-urls -Du world

Для удобства для последнего варианта я сделал себе алиас.

Замечания, предложения и другая критика приветствуются :)

Реклама
Опубликовано в Gentoo, Linux, Tips&Tricks. Leave a Comment »

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: