[pacman-dev] [PATCHv2] Give a "success!" message on database check

Patrick Eigensatz patrickeigensatz at gmail.com
Sat Oct 1 07:57:53 UTC 2016


'pacman -Dk' prints a "success!" message if there were no errors.
It is possible to suppress the output using the '-q / --quiet' flag.

This implements the feature discussed at https://bugs.archlinux.org/task/50087

Signed-off-by: Patrick Eigensatz <patrick.eigensatz at gmail.com>
---
 doc/pacman.8.txt      | 6 +++++-
 src/pacman/database.c | 4 ++++
 src/pacman/pacman.c   | 5 +++++
 3 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/doc/pacman.8.txt b/doc/pacman.8.txt
index 2bafa41..0522981 100644
--- a/doc/pacman.8.txt
+++ b/doc/pacman.8.txt
@@ -456,7 +456,7 @@ Database Options (apply to '-D')[[QO]]
 	package installed even when it was initially installed as a dependency
 	of another package.
 
-*-k \--check*::
+*-k, \--check*::
 	Check the local package database is internally consistent. This will
 	check all required files are present and that installed packages have
 	the required dependencies, do not conflict and that multiple packages
@@ -464,6 +464,10 @@ Database Options (apply to '-D')[[QO]]
 	a check on the sync databases to ensure all specified dependencies
 	are available.
 
+*-q, \--quiet*::
+	Apply to '-q' or '--quiet' to suppress the message that the
+	database check was successful and no errors have been found.
+
 File Options (apply to '-F')[[FO]]
 ----------------------------------
 *-y, --refresh*::
diff --git a/src/pacman/database.c b/src/pacman/database.c
index 0197903..3990ea2 100644
--- a/src/pacman/database.c
+++ b/src/pacman/database.c
@@ -286,6 +286,10 @@ int pacman_database(alpm_list_t *targets)
 		} else {
 			ret = check_db_sync();
 		}
+
+		if(ret == 0 && !config->quiet) {
+			printf(_("No database errors have been found!\n"));
+		}
 	}
 
 	if(config->flags & (ALPM_TRANS_FLAG_ALLDEPS | ALPM_TRANS_FLAG_ALLEXPLICIT)) {
diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c
index be52d1b..3881829 100644
--- a/src/pacman/pacman.c
+++ b/src/pacman/pacman.c
@@ -171,6 +171,7 @@ static void usage(int op, const char * const myname)
 			addlist(_("      --asdeps         mark packages as non-explicitly installed\n"));
 			addlist(_("      --asexplicit     mark packages as explicitly installed\n"));
 			addlist(_("  -k, --check          test local database for validity (-kk for sync databases)\n"));
+			addlist(_("  -q, --quiet          Suppress the success message of the validity check\n"));
 		} else if(op == PM_OP_DEPTEST) {
 			printf("%s:  %s {-T --deptest} [%s] [%s]\n", str_usg, myname, str_opt, str_pkg);
 			printf("%s:\n", str_opt);
@@ -466,6 +467,10 @@ static int parsearg_database(int opt)
 		case 'k':
 			(config->op_q_check)++;
 			break;
+		case OP_QUIET:
+		case 'q':
+			config->quiet = 1;
+		break;
 		default:
 			return 1;
 	}
-- 
2.10.0


More information about the pacman-dev mailing list