From d25443be575c5d57001cc267be69bb44b6502b72 Mon Sep 17 00:00:00 2001 From: kitsunyan Date: Sat, 16 Jun 2018 23:20:35 +0300 Subject: Resolve AUR upgrades and print warnings after "--sysupgrade" --- src/common.nim | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'src/common.nim') diff --git a/src/common.nim b/src/common.nim index f2fb155..ead9b4b 100644 --- a/src/common.nim +++ b/src/common.nim @@ -39,20 +39,32 @@ type repo: string ] -proc checkAndRefresh*(color: bool, args: seq[Argument]): tuple[code: int, args: seq[Argument]] = +proc checkAndRefreshUpgradeInternal(color: bool, upgrade: bool, args: seq[Argument]): + tuple[code: int, args: seq[Argument]] = let refreshCount = args.count(%%%"refresh") - if refreshCount > 0: + let upgradeCount = if upgrade: args.count(%%%"sysupgrade") else: 0 + if refreshCount > 0 or upgradeCount > 0: let code = pacmanRun(true, color, args .keepOnlyOptions(commonOptions, transactionOptions, upgradeOptions) & ("S", none(string), ArgumentType.short) & - ("y", none(string), ArgumentType.short).repeat(refreshCount)) + ("y", none(string), ArgumentType.short).repeat(refreshCount) & + ("u", none(string), ArgumentType.short).repeat(upgradeCount)) let callArgs = args - .filter(arg => not arg.matchOption(%%%"refresh")) + .filter(arg => not arg.matchOption(%%%"refresh") and + (upgradeCount == 0 or not arg.matchOption(%%%"sysupgrade"))) (code, callArgs) else: (0, args) +template checkAndRefreshUpgrade*(color: bool, args: seq[Argument]): + tuple[code: int, args: seq[Argument]] = + checkAndRefreshUpgradeInternal(color, true, args) + +template checkAndRefresh*(color: bool, args: seq[Argument]): + tuple[code: int, args: seq[Argument]] = + checkAndRefreshUpgradeInternal(color, false, args) + proc noconfirm*(args: seq[Argument]): bool = args .filter(arg => arg.matchOption(%%%"confirm") or -- cgit v1.2.3-70-g09d2