Багзилла
Т.к. периодически натыкаюсь на баги, то сделал консольный ro "клиент" для багзиллы генты, ибо лезть в браузер, идти на бго и потом вбив запрос получить ответ просто лень :3
Скрипт прост:
bgo
#!/bin/bash
BGO="https://bugs.gentoo.org"
green="\033[01;32m"
red="\033[01;31m"
restore="\033[00m"
contrast="\033[1m"
underline="\033[4m"
if ! grep -q "bug=" <<< "${1}";then
URL="https://bugs.gentoo.org/buglist.cgi?quicksearch=${1}"
CONTENT="$(curl -s ${URL} 2>/dev/null)"
BUGS="$(echo "${CONTENT}" | grep "a href=\"show_bug.cgi?id=.*[a-z].*\<" | cut -d \= -f2,3 | sed -e 's|>.*||' -e 's|\"||g')"
for bug_full in ${BUGS};do
url="${BGO}/${bug_full}"
id="${bug_full#*=}"
desc="$(grep "${bug_full}.*[a-z].*\<" <<< "${CONTENT}")"
desc="${desc#*\>}"
desc="${desc%%\<*}"
status="$(echo "${CONTENT}" | grep -A1 ${id} | awk '/bz_[[:upper:]]/ {print $3}' | sed 's|bz_||')"
echo -e "${status}\t${green}${id}${restore}: ${desc}" | sed -e 's|"|\"|g;s|>|\>|g;s|<|\<|g'
done
else
id="${1#bug=}"
URL="https://bugs.gentoo.org/show_bug.cgi?id=${id}"
CONTENT="$(curl -s ${URL} 2>/dev/null)"
status="$(echo "${CONTENT}" | awk '/bz_status/ {print $3}' | sed 's|bz_status_||')"
desc="$(grep "Bug ${id} &ndash" <<< "${CONTENT}")"
desc="${desc#*\;}"
desc="${desc%\<*}"
echo -e "${status}\t${green}${id}${restore}: ${desc}" | sed -e 's|"|\"|g;s|>|\>|g;s|<|\<|g'
echo -e "Attachments:"
while read line;do
name="${line#*title=\"}"
name="${name%\"*}"
href="${BGO}/attachment.cgi?id=${line%&*}"
[[ -n "${name}" ]] && echo -e "${underline}${href}${restore} ${name}"
done <<< "$(echo "${CONTENT}" | grep "href=\"attachment.cgi?id=.*title" | sed 's|.*id=||')"
fi
В виде параметров принимает:- запрос для поиска. обычно это пакет, иногда с версией
- bug=X, где X номер бага
[ megabaks@desktop ] ~ $ bgo nacl-toolchain-newlib
UNCONFIRMED 464168: dev-lang/nacl-toolchain-newlib-0_p10915 fails to build
CONFIRMED 438732: dev-lang/nacl-toolchain-newlib-0_p9093 doesn't work due to missing crt1.o
[ megabaks@desktop ] ~ $
во втором получим аттачи нужного бага:[ megabaks@desktop ] ~ $ bgo bug=464168
UNCONFIRMED 464168: dev-lang/nacl-toolchain-newlib-0_p10915 fails to build
Attachments:
https://bugs.gentoo.org/attachment.cgi?id=344046 dev-lang/nacl-toolchain-newlib-0_p10915 build log
[ megabaks@desktop ] ~ $
МаскировкиТак же при обновлениях/установках попадаются замаскированные пакеты. Парсить ручками /usr/portage/profiles/package.mask тоже лень, потому скриптик делает это за меня и говорит какого же его замаскировали.
why_masked:
#!/bin/bash
FILE="/usr/portage/profiles/package.mask"
opt="$(sed 's|/|\\/|' <<< "${1}")"
grep -20 "^[^#].*${opt}" "${FILE}" | sed -ne "/^#.*${opt}/d" -e '/./{H;$!d;}' -ne "x;/${opt}/p;" | sed '/^$/d'
В виде параметров так же принимает пакет, например:[ megabaks@desktop ] ~ $ why-masked chromium
# Pawel Hajdan jr (26 Feb 2013)
# Dev channel releases are only for people who are developers or want more
# experimental features and accept a more unstable release.
>=www-client/chromium-27
[ megabaks@desktop ] ~ $
быстро, просто, удобно.аналогичен скрипт для замаскированных юзов.
Zugaina
Есть такой ресурс zugaina для поиска ебилдов по оверлеям.
Но лезть в браузер не всегда хочется, да и парсить выхлоп его мне не нравится.
Потому запилил такой вот скриптик (ссылка из-за убого блогспота) выхлоп выглядит примерно так (IRL так)
[ megabaks@desktop ] ~ $ sh scripts/zugaina/zugaina deadbeef
media-sound/deadbeef: foobar2000-like music player.
media-sound/deadbeef-vk: DeadBeef plugin for listening musing from vkontakte.com
media-sound/deadbeef-infobar: Infobar plugin for DeadBeeF audio player. Shows lyrics and artist biography for the current track.
media-sound/deadbeef-fb: DeaDBeeF filebrowser plugin
media-sound/deadbeef-mpris-plugin: MPRIS-plugin for deadbeef
media-sound/deadbeef-archreader: Dedbeef plugin for play files directly from RAR, 7z and Gzip archive files
PACKAGE REPOSITORY
------- ----------
media-sound/deadbeef-9999-r1 stuff
media-sound/deadbeef-9999 damex-overlay gentoo-zh
media-sound/deadbeef-0.5.6-r1 stuff
media-sound/deadbeef-0.5.6 calculate miramir sabayon
media-sound/deadbeef-0.5.5-r1 stuff
media-sound/deadbeef-0.5.5 foo-overlay funtoo miramir sabayon
media-sound/deadbeef-0.5.4-r1 stuff
media-sound/deadbeef-0.5.2 foo-overlay funtoo
media-sound/deadbeef-0.5.1-r3 gentoo-zh
media-sound/deadbeef-0.5.1-r1 foo-overlay funtoo
media-sound/deadbeef-0.4.4 sebasmagri
media-sound/deadbeef-0.4.3_rc1-r1 betagarden
media-sound/deadbeef-vk-9999 stuff
media-sound/deadbeef-vk-0.1.11 stuff
media-sound/deadbeef-infobar-9999 stuff
media-sound/deadbeef-infobar-1.3 stuff
media-sound/deadbeef-infobar-1.2 stuff
media-sound/deadbeef-fb-20121012 stuff
media-sound/deadbeef-fb-20120827 stuff
media-sound/deadbeef-mpris-plugin-9999 stuff
media-sound/deadbeef-mpris-plugin-2.1.2 stuff
media-sound/deadbeef-archreader-9999 stuff
[ megabaks@desktop ] ~ $ sh scripts/zugaina/zugaina -e media-sound/deadbeef
media-sound/deadbeef: foobar2k-like music player
PACKAGE REPOSITORY
------- ----------
media-sound/deadbeef-9999-r1 stuff
media-sound/deadbeef-9999 damex-overlay gentoo-zh
media-sound/deadbeef-0.5.6-r1 stuff
media-sound/deadbeef-0.5.6 calculate miramir sabayon
media-sound/deadbeef-0.5.5-r1 stuff
media-sound/deadbeef-0.5.5 foo-overlay funtoo miramir sabayon
media-sound/deadbeef-0.5.4-r1 stuff
media-sound/deadbeef-0.5.2 foo-overlay funtoo
media-sound/deadbeef-0.5.1-r3 gentoo-zh
media-sound/deadbeef-0.5.1-r1 foo-overlay funtoo
media-sound/deadbeef-0.4.4 sebasmagri
media-sound/deadbeef-0.4.3_rc1-r1 betagarden
[ megabaks@desktop ] ~ $
Комментариев нет :
Отправить комментарий