Показаны сообщения с ярлыком [bash]. Показать все сообщения
Показаны сообщения с ярлыком [bash]. Показать все сообщения

понедельник, 27 января 2014 г.

portopts

Запилил пару скриптов для быстрого задания юзов и кейвордов.
Собственно как работают:
use deadbeef -m3u
old: media-sound/deadbeef ape converter dts hotkeys psf src supereq alac curl shellexec cover cover-imlib2 mms lastfm wma pltbrowser m3u -adplug
new: media-sound/deadbeef ape converter dts hotkeys psf src supereq alac curl shellexec cover cover-imlib2 mms lastfm wma pltbrowser -adplug -m3u        [ ok ]
use deadbeef m3u
old: media-sound/deadbeef ape converter dts hotkeys psf src supereq alac curl shellexec cover cover-imlib2 mms lastfm wma pltbrowser -adplug -m3u
new: media-sound/deadbeef ape converter dts hotkeys psf src supereq alac curl shellexec cover cover-imlib2 mms lastfm wma pltbrowser -adplug m3u         [ ok ]
use deadbeef m3u !
old: media-sound/deadbeef ape converter dts hotkeys psf src supereq alac curl shellexec cover cover-imlib2 mms lastfm wma pltbrowser -adplug m3u
new: media-sound/deadbeef ape converter dts hotkeys psf src supereq alac curl shellexec cover cover-imlib2 mms lastfm wma pltbrowser -adplug             [ ok ]
Отсюда уже видно как работают:

  • умеют сами определять категорию пакета
  • запиливают опции в уже существующую строку, если нет, то создают новую
  • убирают дубли и передёргивания on/off/on/off
  • умеют как файлы, так и директории
  • при удалении "-" не имеет значения - будут убраны любые упоминания сего флага
Живут здесь и в оверлее stuff.
Ругайтесь :3

вторник, 2 апреля 2013 г.

Portage: пара удобных скриптов

Просто пара удобных скриптов

четверг, 28 марта 2013 г.

Сборка ядра в раме

Сваял скриптик для сборки ядра в оперативке(tmpfs).
в оперативу попадают только ссылки на сорсы, что и быстрей копирования и экономит место.
все временный файлы создаются в раме.
на винт после сборки падают только необходимые файлы, а весь треш пропадает в /dev/null.
В случае моего ядра это 6000+ файлов на овер 150 метров

вторник, 22 января 2013 г.

man vs unicode (просто на память)

1. чтобы man корректно отображал свои выхлопы, в файл /etc/portage/env/sys-apps/man
надо запилить следующее
pre_src_prepare(){
iconv -f koi8-r msgs/mess.ru > msgs/mess.ru-fixed
mv msgs/mess.ru-fixed msgs/mess.ru
sed 's/koi8-r/UTF-8/' -i msgs/mess.ru.codeset
}
теперь при сборке любой версии всё будет происходить автоматом, а не как советуют в некоторых вики
2. чтобы показывал в первую очередь русские маны если таковые имеются, надо создать алиас
alias man='LC_ALL=ru_RU.UTF-8 man'
и это в ~/.bashrc пользователя

понедельник, 2 апреля 2012 г.

dkms-2

Перепилил предыдущий вариант
теперь проверяются и версии модулей
да, базу надо будет пересоздать, т.к. формат несколько изменился

воскресенье, 1 апреля 2012 г.

dkms

надоело помнить и пересобирать сторонние модули ядра вручную
готовых портов dkms не нашёл
потому запилил вот такое:

вторник, 27 марта 2012 г.

Failed packages

Пока откатывал glibc, родилась мысля - выяснить пакеты, сборка которых сфейлилась.
Искать решил периодами в сутки - т.е. за последние сутки, 2-е/3-е/т.д. суток
Вот, свелосипедил(?)
#!/bin/bash

SUM_LOG="/var/log/portage/elog/summary.log"
EM_LOG="/var/log/emerge.log"

[[ -n ${1} ]] && DAYS="${1}" || DAYS="1"

secs="86400" # seconds in 1 day

for count in `seq ${DAYS}`;do
  DATA="$(date --date="@$(( `date +%s` - $(( $secs * ${count} )) ))" --rfc-3339=date)"
  ALL="$(grep ${DATA} ${SUM_LOG} | awk '{print $13}' | tr -d \: | uniq)"
  ALL_FAILED="$(
  for i in ${ALL};do
 grep "ERROR\: ${i}" ${SUM_LOG}
  done | awk '{print $2}' | sort | uniq
  )"

  for x in ${ALL_FAILED};do
 grep "${x}" ${EM_LOG} | tail -n1 | grep -q "completed" || FAILED+=" =${x}"
  done
done

echo ${FAILED} | tr " " "\n" | sort | uniq
как параметр принимает цифру, означающую кол-во суток
без параметров ищет за одни последние сутки

воскресенье, 25 марта 2012 г.

glibc downgrade

не удержался - поставил glibc-2.15
где профит, где регресс, где вообще пакет не собрать
потому решил откатить до 2.14, но меня ждал сюрприз - в вики допотопное непотребное нечто
во-первых там не всё что надо
во-вторых оно хочет бинарник
в-третьих слишком много телодвижений - то правь конфиг, то откатывай...
тьфу, короче
потому решил запилить скрипт, который сделает всё красиво
вот, собственно, и он

понедельник, 30 января 2012 г.

/etc/portage/

пока я использую генту, файлы в /etc/portage всё больше и больше становятся похожи на нечто нецензурное: пакеты и их опции никак не отсортированы
а package.use - это самый шик - пакет может быть записан несколько раз с разными флагами
т.к. я ленивый, меня напрягает править файл
обычно запись в этот файл заключается в
echo "пакет юз" >> /etc/portage/package.use
дабы отсортировать всё это безобразие, сделал пару скриптов:
1. для всех package.*
2. специально для package.use
вот, собственно, и они

среда, 2 февраля 2011 г.

понедельник, 24 января 2011 г.