Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Add function to retrieve a given directory or file from a pkg
Baptiste Daroussin committed 10 years ago
commit eeeed53f81ee6e931816cf73937bd9048b27043a
parent 20d8100
2 files changed +33 -2
modified libpkg/pkg.c
@@ -1,5 +1,5 @@
/*-
-
 * Copyright (c) 2011-2015 Baptiste Daroussin <bapt@FreeBSD.org>
+
 * Copyright (c) 2011-2016 Baptiste Daroussin <bapt@FreeBSD.org>
 * Copyright (c) 2011-2012 Julien Laffaye <jlaffaye@FreeBSD.org>
 * Copyright (c) 2012 Bryan Drewery <bryan@shatow.net>
 * Copyright (c) 2013 Matthew Seaman <matthew@FreeBSD.org>
@@ -1743,6 +1743,34 @@ pkg_is_config_file(struct pkg *p, const char *path,
	return (true);
}

+
struct pkg_dir *
+
pkg_get_dir(struct pkg *p, const char *path)
+
{
+
	struct pkg_dir *d = NULL;
+
	khint_t k;
+

+
	k = kh_get_pkg_dirs(p->dirhash, path);
+
	if (k != kh_end(p->dirhash)) {
+
		d = kh_value(p->dirhash, k);
+
	}
+

+
	return (d);
+
}
+

+
struct pkg_file *
+
pkg_get_file(struct pkg *p, const char *path)
+
{
+
	struct pkg_file *f = NULL;
+
	khint_t k;
+

+
	k = kh_get_pkg_files(p->filehash, path);
+
	if (k != kh_end(p->filehash)) {
+
		f = kh_value(p->filehash, k);
+
	}
+

+
	return (f);
+
}
+

bool
pkg_has_file(struct pkg *p, const char *path)
{
modified libpkg/pkg.h.in
@@ -1,5 +1,5 @@
/*-
-
 * Copyright (c) 2011-2015 Baptiste Daroussin <bapt@FreeBSD.org>
+
 * Copyright (c) 2011-2016 Baptiste Daroussin <bapt@FreeBSD.org>
 * Copyright (c) 2011-2012 Julien Laffaye <jlaffaye@FreeBSD.org>
 * Copyright (c) 2011 Will Andrews <will@FreeBSD.org>
 * Copyright (c) 2011 Philippe Pepiot <phil@philpep.org>
@@ -776,6 +776,9 @@ bool pkg_dep_is_locked(struct pkg_dep const * const);
bool pkg_has_dir(struct pkg *, const char *);
bool pkg_has_file(struct pkg *, const char *);

+
struct pkg_file *pkg_get_file(struct pkg *p, const char *path);
+
struct pkg_dir *pkg_get_dir(struct pkg *p, const char *path);
+

/* pkg_license */
const char *pkg_license_name(struct pkg_license const * const);