From 5515b3b488c1dc9b53752419f895ccc85f70788a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anton=20Luka=20=C5=A0ijanec?= Date: Mon, 23 Jan 2023 19:37:53 +0100 Subject: portage command substitution patch --- .../sys-apps/portage/command-substitution.patch | 25 ++++++++++++++++++++++ root/posodobi.sh | 8 +++++++ 2 files changed, 33 insertions(+) create mode 100644 etc/portage/patches/sys-apps/portage/command-substitution.patch create mode 100755 root/posodobi.sh diff --git a/etc/portage/patches/sys-apps/portage/command-substitution.patch b/etc/portage/patches/sys-apps/portage/command-substitution.patch new file mode 100644 index 0000000..30edeae --- /dev/null +++ b/etc/portage/patches/sys-apps/portage/command-substitution.patch @@ -0,0 +1,25 @@ +diff --git a/lib/portage/util/__init__.py b/lib/portage/util/__init__.py +index 285bf66..74e3232 100644 +--- a/lib/portage/util/__init__.py ++++ b/lib/portage/util/__init__.py +@@ -992,6 +992,20 @@ def varexpand(mystring, mydict=None, error_leader=None): + newstring.append(current) + continue + ++ if mystring[pos] == "(": ++ # print(f"[šijanec.eu] debug0 {mystring}"); ++ end = mystring[pos:].find(")") ++ if end == -1: ++ msg = error_leader() + "[šijanec.eu] missing closing ) in shell command substitution variable" ++ writemsg(msg + "\n", noiselevel=-1) ++ return "" ++ cmd = mystring[pos+1:pos+end] ++ out = subprocess.run(["sh", "-c", cmd], stdout=subprocess.PIPE).stdout.decode("utf-8") ++ newstring.append(out.strip()) ++ pos += end+1 ++ # print(f"[šijanec.eu] debug {cmd} {newstring}") ++ continue ++ + if mystring[pos] == "{": + pos += 1 + if pos == length: diff --git a/root/posodobi.sh b/root/posodobi.sh new file mode 100755 index 0000000..3d0cdf6 --- /dev/null +++ b/root/posodobi.sh @@ -0,0 +1,8 @@ +#!/bin/bash +set -e +f= +grep "--no-sync" <<<"@$" || emaint sync --auto +grep "--no-ask" <<<"@$" || f=--ask +emerge --verbose --update $f --newuse --changed-use --backtrack 30 --deep @world +emerge @preserved-rebuild +emerge --depclean -- cgit v1.2.3