From 1e46c55a4ccc31655b478ae4a1a97fc78545cbd7 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Mon, 5 Sep 2022 21:39:07 +0300 Subject: Added pre-sync and post-sync function to sen command, for much improved funtoo gentoo overlay compatibility --- .zshrc | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to '.zshrc') diff --git a/.zshrc b/.zshrc index 8705998..ed31fa7 100644 --- a/.zshrc +++ b/.zshrc @@ -77,7 +77,7 @@ device="desktop" # can be either "desktop" (default when empty), "server" or "an if [[ -x "$(command -v emerge)" ]]; then alias seq="sudo emerge --quiet-build -v" alias sep="sudo emerge -pv" - alias sen="sudo ego sync && sudo emerge --quiet-build -vuDN @world" + alias sen="pre-sync && sudo ego sync && post-sync && sudo emerge --quiet-build -vuDN @world" alias seN="sudo emerge --quiet-build -vuDN @world" alias seNp="sudo emerge --quiet-build -pvuDN @world" alias ses="sudo emerge -s" @@ -86,6 +86,37 @@ device="desktop" # can be either "desktop" (default when empty), "server" or "an alias seC="sudo emerge -C" alias secp="sudo emerge -cp" alias seCp="sudo emerge -Cp" + + pre-sync() { + echo '(.zshrc) Running pre-sync function...' + + # Since in post-sync I change the EAPI of a lot of the ebuilds, + # the overlay can't be synced properly + _pwd=$(pwd) + cd /var/db/repos/gentoo + sudo git reset --hard + cd $_pwd + + echo '(.zshrc) pre-sync finished! :}' + } + + post-sync() { + echo '(.zshrc) Running post-sync function...' + + # Fixes the elusive + # "!!! Repository name or alias 'gentoo', defined for repository 'core-kit', overrides existing alias or repository." + # error when enabling gentoo overlay + sudo sed -i 's/aliases = gentoo/#aliases = gentoo/g' /var/git/meta-repo/kits/core-kit/metadata/layout.conf + + # In the gentoo overlay, most packages don't actually use EAPI 8 specific features, so + # they can safely be rolled back to EAPI 7 (funtoo's portage doesn't support EAPI 8 yet). + # However, there are still some that do need EAPI 8, so they should be left alone. + # Since I'm incredibly lazy, for now, this is how I'm gonna do it. + find '/var/db/repos/gentoo' -type f -name "*.ebuild" ! -path "*dev-qt*" ! -path "*kde-frameworks*" ! -path "*kde-plasma*" \ + | xargs sudo sed -i 's/EAPI=8/EAPI=7/g' + + echo '(.zshrc) post-sync finished! :]' + } fi # }}} -- cgit v1.2.3