xref: /freebsd/usr.sbin/pkg/config.h (revision dc4581589a3256667fafd46a30c67abdfd86618f)
19950eceeSBaptiste Daroussin /*-
24d846d26SWarner Losh  * SPDX-License-Identifier: BSD-2-Clause
31de7b4b8SPedro F. Giffuni  *
49950eceeSBaptiste Daroussin  * Copyright (c) 2013 Baptiste Daroussin <bapt@FreeBSD.org>
59950eceeSBaptiste Daroussin  * All rights reserved.
69950eceeSBaptiste Daroussin  *
79950eceeSBaptiste Daroussin  * Redistribution and use in source and binary forms, with or without
89950eceeSBaptiste Daroussin  * modification, are permitted provided that the following conditions
99950eceeSBaptiste Daroussin  * are met:
109950eceeSBaptiste Daroussin  * 1. Redistributions of source code must retain the above copyright
119950eceeSBaptiste Daroussin  *    notice, this list of conditions and the following disclaimer.
129950eceeSBaptiste Daroussin  * 2. Redistributions in binary form must reproduce the above copyright
139950eceeSBaptiste Daroussin  *    notice, this list of conditions and the following disclaimer in the
149950eceeSBaptiste Daroussin  *    documentation and/or other materials provided with the distribution.
159950eceeSBaptiste Daroussin  *
169950eceeSBaptiste Daroussin  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
179950eceeSBaptiste Daroussin  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
189950eceeSBaptiste Daroussin  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
199950eceeSBaptiste Daroussin  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
209950eceeSBaptiste Daroussin  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
219950eceeSBaptiste Daroussin  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
229950eceeSBaptiste Daroussin  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
239950eceeSBaptiste Daroussin  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
249950eceeSBaptiste Daroussin  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
259950eceeSBaptiste Daroussin  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
269950eceeSBaptiste Daroussin  * SUCH DAMAGE.
279950eceeSBaptiste Daroussin  */
289950eceeSBaptiste Daroussin 
299950eceeSBaptiste Daroussin #ifndef _PKG_CONFIG_H
309950eceeSBaptiste Daroussin #define _PKG_CONFIG_H
319950eceeSBaptiste Daroussin 
321f474190SStefan Eßer #include <paths.h>
33*dc458158SBaptiste Daroussin #include <sys/queue.h>
341f474190SStefan Eßer 
3562940ea9SBryan Drewery #define URL_SCHEME_PREFIX "pkg+"
369950eceeSBaptiste Daroussin 
379950eceeSBaptiste Daroussin typedef enum {
389950eceeSBaptiste Daroussin 	PACKAGESITE = 0,
399950eceeSBaptiste Daroussin 	ABI,
409950eceeSBaptiste Daroussin 	MIRROR_TYPE,
419950eceeSBaptiste Daroussin 	ASSUME_ALWAYS_YES,
42f12db248SBryan Drewery 	SIGNATURE_TYPE,
43f12db248SBryan Drewery 	FINGERPRINTS,
44eb31a574SBryan Drewery 	REPOS_DIR,
4561acb458SBaptiste Daroussin 	PUBKEY,
46e869d3c6SMoritz Schmitt 	PKG_ENV,
479950eceeSBaptiste Daroussin 	CONFIG_SIZE
489950eceeSBaptiste Daroussin } pkg_config_key;
499950eceeSBaptiste Daroussin 
509950eceeSBaptiste Daroussin typedef enum {
519950eceeSBaptiste Daroussin 	PKG_CONFIG_STRING=0,
529950eceeSBaptiste Daroussin 	PKG_CONFIG_BOOL,
53eb31a574SBryan Drewery 	PKG_CONFIG_LIST,
54e869d3c6SMoritz Schmitt 	PKG_CONFIG_OBJECT
559950eceeSBaptiste Daroussin } pkg_config_t;
569950eceeSBaptiste Daroussin 
57bc5e9ac0SBryan Drewery typedef enum {
58bc5e9ac0SBryan Drewery 	CONFFILE_PKG=0,
59bc5e9ac0SBryan Drewery 	CONFFILE_REPO,
60bc5e9ac0SBryan Drewery } pkg_conf_file_t;
61bc5e9ac0SBryan Drewery 
62*dc458158SBaptiste Daroussin typedef enum {
63*dc458158SBaptiste Daroussin 	SIGNATURE_NONE = 0,
64*dc458158SBaptiste Daroussin 	SIGNATURE_FINGERPRINT,
65*dc458158SBaptiste Daroussin 	SIGNATURE_PUBKEY,
66*dc458158SBaptiste Daroussin } signature_t;
67*dc458158SBaptiste Daroussin 
68*dc458158SBaptiste Daroussin typedef enum {
69*dc458158SBaptiste Daroussin 	MIRROR_NONE = 0,
70*dc458158SBaptiste Daroussin 	MIRROR_SRV,
71*dc458158SBaptiste Daroussin } mirror_t;
72*dc458158SBaptiste Daroussin 
73*dc458158SBaptiste Daroussin struct repository {
74*dc458158SBaptiste Daroussin 	char *name;
75*dc458158SBaptiste Daroussin 	char *url;
76*dc458158SBaptiste Daroussin 	mirror_t mirror_type;
77*dc458158SBaptiste Daroussin 	signature_t signature_type;
78*dc458158SBaptiste Daroussin 	char *fingerprints;
79*dc458158SBaptiste Daroussin 	char *pubkey;
80*dc458158SBaptiste Daroussin 	STAILQ_ENTRY(repository) next;
81*dc458158SBaptiste Daroussin };
82*dc458158SBaptiste Daroussin STAILQ_HEAD(repositories, repository);
83*dc458158SBaptiste Daroussin 
8418418e19SKyle Evans int config_init(const char *);
859950eceeSBaptiste Daroussin void config_finish(void);
869950eceeSBaptiste Daroussin int config_string(pkg_config_key, const char **);
879950eceeSBaptiste Daroussin int config_bool(pkg_config_key, bool *);
88*dc458158SBaptiste Daroussin struct repositories *config_get_repositories(void);
899950eceeSBaptiste Daroussin 
909950eceeSBaptiste Daroussin #endif
91