From 4f895806161ccc7996914063f2298deb8dc572cc Mon Sep 17 00:00:00 2001 From: joerg Date: Fri, 11 Oct 2019 11:57:41 +0000 Subject: pkg_install-20191008: Add pkg_admin digest command --- pkgtools/pkg_install/files/admin/main.c | 31 +++++++++++++++++++++++--- pkgtools/pkg_install/files/admin/pkg_admin.1 | 12 ++++++---- pkgtools/pkg_install/files/admin/pkg_admin.cat | 5 ++++- pkgtools/pkg_install/files/lib/version.h | 4 ++-- 4 files changed, 42 insertions(+), 10 deletions(-) (limited to 'pkgtools/pkg_install') diff --git a/pkgtools/pkg_install/files/admin/main.c b/pkgtools/pkg_install/files/admin/main.c index e018d8994d5..c61f9510421 100644 --- a/pkgtools/pkg_install/files/admin/main.c +++ b/pkgtools/pkg_install/files/admin/main.c @@ -1,4 +1,4 @@ -/* $NetBSD: main.c,v 1.66 2018/02/26 23:45:02 ginsbach Exp $ */ +/* $NetBSD: main.c,v 1.67 2019/10/11 11:57:41 joerg Exp $ */ #if HAVE_CONFIG_H #include "config.h" @@ -7,10 +7,10 @@ #if HAVE_SYS_CDEFS_H #include #endif -__RCSID("$NetBSD: main.c,v 1.66 2018/02/26 23:45:02 ginsbach Exp $"); +__RCSID("$NetBSD: main.c,v 1.67 2019/10/11 11:57:41 joerg Exp $"); /*- - * Copyright (c) 1999-2009 The NetBSD Foundation, Inc. + * Copyright (c) 1999-2019 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation @@ -59,8 +59,10 @@ __RCSID("$NetBSD: main.c,v 1.66 2018/02/26 23:45:02 ginsbach Exp $"); #endif #ifndef NETBSD #include +#include #else #include +#include #endif #if HAVE_LIMITS_H #include @@ -93,6 +95,7 @@ static const char Options[] = "C:K:SVbd:qs:v"; int quiet, verbose; static void set_unset_variable(char **, Boolean); +static void digest_input(char **); /* print usage message and exit */ void @@ -521,6 +524,9 @@ main(int argc, char *argv[]) } else if (strcasecmp(argv[0], "unset") == 0) { argv++; /* "unset" */ set_unset_variable(argv, TRUE); + } else if (strcasecmp(argv[0], "digest") == 0) { + argv++; /* "digest" */ + digest_input(argv); } else if (strcasecmp(argv[0], "config-var") == 0) { argv++; if (argv == NULL || argv[1] != NULL) @@ -736,3 +742,22 @@ set_unset_variable(char **argv, Boolean unset) return; } + +static void +digest_input(char **argv) +{ + char digest[SHA256_DIGEST_STRING_LENGTH]; + int failures = 0; + + while (*argv != NULL) { + if (SHA256_File(*argv, digest)) { + puts(digest); + } else { + warn("cannot process %s", *argv); + ++failures; + } + argv++; + } + if (failures) + exit(EXIT_FAILURE); +} diff --git a/pkgtools/pkg_install/files/admin/pkg_admin.1 b/pkgtools/pkg_install/files/admin/pkg_admin.1 index b90d9f55e0c..4848fc246f7 100644 --- a/pkgtools/pkg_install/files/admin/pkg_admin.1 +++ b/pkgtools/pkg_install/files/admin/pkg_admin.1 @@ -1,10 +1,11 @@ -.\" $NetBSD: pkg_admin.1,v 1.37 2019/10/08 21:33:35 joerg Exp $ +.\" $NetBSD: pkg_admin.1,v 1.38 2019/10/11 11:57:41 joerg Exp $ .\" -.\" Copyright (c) 1999-2010 The NetBSD Foundation, Inc. +.\" Copyright (c) 1999-2019 The NetBSD Foundation, Inc. .\" All rights reserved. .\" .\" This code is derived from software contributed to The NetBSD Foundation -.\" by Hubert Feyrer . +.\" by Hubert Feyrer and +.\" by Joerg Sonnenberger . .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -27,7 +28,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd February 25, 2018 +.Dd October 8, 2019 .Dt PKG_ADMIN 1 .Os .Sh NAME @@ -182,6 +183,9 @@ otherwise it exits with error. Print the current value of .Ar variable as used after parsing the configuration file. +.It Cm digest Ar file ... +Compute a SHA256 message digest of +.Ar file . .It Cm dump Dump the contents of the package database, similar to .Cm pkg_info -F . diff --git a/pkgtools/pkg_install/files/admin/pkg_admin.cat b/pkgtools/pkg_install/files/admin/pkg_admin.cat index 9d3918194d5..43b1cb636d4 100644 --- a/pkgtools/pkg_install/files/admin/pkg_admin.cat +++ b/pkgtools/pkg_install/files/admin/pkg_admin.cat @@ -105,6 +105,9 @@ OOPPTTIIOONNSS Print the current value of _v_a_r_i_a_b_l_e as used after parsing the configuration file. + ddiiggeesstt _f_i_l_e _._._. + Compute a SHA256 message digest of _f_i_l_e. + dduummpp Dump the contents of the package database, similar to ppkkgg__iinnffoo --FF. Columns are printed for the key field used in the pkgdb - the filename -, and the data field - the package the file belongs @@ -206,4 +209,4 @@ HHIISSTTOORRYY AAUUTTHHOORRSS The ppkkgg__aaddmmiinn command was written by Hubert Feyrer. -pkgsrc February 25, 2018 pkgsrc +pkgsrc October 8, 2019 pkgsrc diff --git a/pkgtools/pkg_install/files/lib/version.h b/pkgtools/pkg_install/files/lib/version.h index 4eb0bfc6a72..0e3c151c840 100644 --- a/pkgtools/pkg_install/files/lib/version.h +++ b/pkgtools/pkg_install/files/lib/version.h @@ -1,4 +1,4 @@ -/* $NetBSD: version.h,v 1.177 2019/04/05 22:53:29 sevan Exp $ */ +/* $NetBSD: version.h,v 1.178 2019/10/11 11:57:41 joerg Exp $ */ /* * Copyright (c) 2001 Thomas Klausner. All rights reserved. @@ -27,6 +27,6 @@ #ifndef _INST_LIB_VERSION_H_ #define _INST_LIB_VERSION_H_ -#define PKGTOOLS_VERSION 20190405 +#define PKGTOOLS_VERSION 20191008 #endif /* _INST_LIB_VERSION_H_ */ -- cgit v1.2.3