LINUX.ORG.RU

Portscriptum

 ,


0

2

Пилю скрипты (точнеее, почти уже звапилил, осталось всего ничего) для удобнлого руления всякими рвзностями в portage. Слышал, что megabaks тоже пилпит что-то касательно portage, нужно смерить позиции чтобы не пилтиь одно и то же. Итак, что это в составе:

  • скрытие/раксарытие пакетов (внесение/вынесение из /etc/portage/profile/package.provided) - улдобная вещь, когда не хочется обновлять тяжёлые пакеты при обновления мираа
  • маскирова/размаскировка (тут понятно)
  • руление репозиториями - можно дьобавлять несколько адресов для дерева, перключаться между ними, управлять оверлеями, перекелючать ветки для репозиториев и оверлеев и всётакое
  • руление флагами, локальными (/etx/piortage/package.use) и глробальными, через специальнфый ключ можно редактировать эти файлы напрямую
  • заморозка пакетов - ебилд пакета переноситсяя в сециальлный локальный оверлей и маскируются все версии выше и ниже

Пока вот всё вот . Если у вас есть предоожения - я принимаю предоложения.

P.S. [megabaks], у твоих изделий есть пересечненя с моими? чтобы одно и то же не делать.

нет, пересечений пока не вижу. portconf (по сути чистилка /etc/portage, мира, make.conf...) тоже касается оверлеев, но иначе:

  • находит неиспользуемые оверлей и предлагает снести
  • поддерживает и локальные и layman-овские
  • поддерживает и классику и на симлинках (битые ссылки предлагает снести)
  • сносит кэш зависимостей неиспользуемых(точнее уже снесённых) оверлеев.

так что пили.

megabaks ★★★★
()

да, когда спрашивал про хотелки, кто-то хотел руль для сетов, но так как, по-моему, это не очень вписывается в portconf (это всё же чистилка, а не редактор), предлагаю запилить.

megabaks ★★★★
()
Ответ на: комментарий от megabaks

да, питон(/руби) более вменяемый чем баш.

кроме того на питоне в генту написано мгоно чего, так что вменяемость возвростает в 2раза. (кстати а как твой баш код отреагирует на zsh/csh/any other shell?)

какое действие от третьих лиц тебе будет доказательством что питон более вменяемый чем баш?

ZuBB ★★★★★
()
Ответ на: комментарий от ZuBB

Пока баш справляется с поставленными задачами - буду писать на баше. Тем более, что постоянно приходится дёргать внешнюю программу (eix), а в баше вызов внешних программ намного прозрачнее, чем в питоне.

fragmentor
() автор топика
Ответ на: комментарий от ZuBB

кстати а как твой баш код отреагирует на zsh/csh/any other shell?

А в чём проблема? просто не использовать башизмы и всё ок.

fragmentor
() автор топика
Ответ на: комментарий от megabaks

А что именно должен делать этот руль для сетов?

(Таки согласен, что работа с сетами в нынешнем виде - это отморозь полная).

fragmentor
() автор топика

Автора за такие методы скрытия и заморозки надо сжечь! Если мегабаксовский скрипт я еще юзаю раз в под года, то такую поделку даже палкой трогать не стану... Надо замаскировать - echo bla bla >> /etc/portage/package.mask

ubiquitine
()
Ответ на: комментарий от ZuBB

да, питон(/руби) более вменяемый чем баш.

лол, даже не смешно:

	for opt in ${1};do
		uses="$(tr "[:space:]" $'\n' <<< ${uses} | grep -v -e "^${opt#-}$" -e "^\-${opt#-}$" | tr $'\n' " ")"
		uses+=" $(tr "[:space:]" $'\n' <<< ${1} | grep -e "^${opt#-}$" -e "^\-${opt#-}$" | tail -n1)"
	done
дай аналог на питоне, на поржать :3

megabaks ★★★★
()
Последнее исправление: megabaks (всего исправлений: 1)
Ответ на: комментарий от ZuBB

на питоне в генту написано мгоно чего, так что вменяемость возвростает в 2раза.

только портаж держится на баше, аха
так что наркоманский питон идёт нахер сходу

megabaks ★★★★
()
Ответ на: комментарий от ZuBB

ну для начала нужно их знать или всегда тестировать еще в одном шелле

для начала надо осилить матчасть:
портаж завязан на баш - да-да, база написана на баше, потому портаж без баша не бывает
есть такая штука как shabang, а потому на твою используемую оболочку тупо плевать
...
ну ты понел

megabaks ★★★★
()
Последнее исправление: megabaks (всего исправлений: 1)
Ответ на: комментарий от megabaks

Давай пример входных и выходных данных, а лучше оформи в законченную функцию/дай целиком то, откуда это взял. Просто, думаю, пошаговый разбор этого сомнительного куска(кода) тебя расстроит.

anonymous
()
Ответ на: комментарий от megabaks

То, что часть портежа написана на нём — результат того, что в прошлом портеж был написан на нём целиком. Единственной настоящей причиной запускать баш в портеже служит тот факт, что системы сборки ожидают быть запущенными в таком окружении.

anonymous
()
Ответ на: комментарий от megabaks

Баш есть не везде, хотя его можно и принести с собой, теоретически.

anonymous
()
Ответ на: комментарий от anonymous
-gtk gtk -gtk -appmenu appmenu webkit -webkit

из этого списка надо выдрать каждое слово в последнем объявленном состоянии (-/ничего)
если знаком с понятием USE-флагов, то проще - надо выдрать последнее объявленное состояние каждого юза

megabaks ★★★★
()
Ответ на: комментарий от anonymous

То, что часть портежа написана на нём — результат того, что в прошлом портеж был написан на нём целиком.

в том числе.

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

нет!

megabaks ★★★★
()
Ответ на: комментарий от anonymous

Ты что-то хотел этим сказать?

то что в генте без баша ловить нехер!?
а потому баш явно не хуже питона, а очень часто и лучше(это мягко сказано).

megabaks ★★★★
()
Ответ на: комментарий от megabaks
uses='-gtk gtk -gtk -appmenu appmenu webkit -webkit'

out=dict()
for use in uses.split():
  if use.startswith('-'):
    out[use[1:]]=False
  else:
    out[use]=True

print(out)
$ python3 test.py 
{'webkit': False, 'gtk': False, 'appmenu': True}
anonymous
()
Ответ на: комментарий от megabaks

Это удобное для дальнейшей обработки представление. Но дабы ты не волновался:

-print(out)
+print(' '.join(use if out[use]else'-'+use for use in out))

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.