Program to manipulate configuration files.
78{
83 .global_ret = EXIT_SUCCESS
84 };
85 char *cfgfile = NULL;
86 char *loglev = NULL;
87 char *logfile = NULL;
91 "gnunet-config [OPTIONS]"),
97 'b',
98 "supported-backend",
99 "BACKEND",
101 "test if the current installation supports the specified BACKEND"),
104 'C',
105 "cflags",
107 "Provide an appropriate value for CFLAGS to applications building on top of GNUnet"),
110 'E',
111 "is-experimental",
112 gettext_noop (
"Is this an experimental build of GNUnet"),
115 'j',
116 "libs",
118 "Provide an appropriate value for LIBS to applications building on top of GNUnet"),
121 'n',
122 "no-defaults",
123 gettext_noop (
"Do not parse default configuration files"),
126 'p',
127 "prefix",
129 "Provide the path under which GNUnet was installed"),
132 'R',
133 "ram-config",
134 "CONFIG_DATA",
136 "Parse main configuration from this command-line argument and not from disk"),
140 };
141 int iret;
142
148 argc,
149 argv);
151 {
156 }
159 loglev,
160 logfile))
161 {
165 return EXIT_FAILURE;
166 }
170 {
172#ifdef GNUNET_EXPERIMENTAL
173 return 0;
174#else
175 return 1;
176#endif
177 }
179 {
184
186 {
187 fprintf (stdout, "-I%sinclude\n", prefixdir);
188 }
190 {
191 fprintf (stdout, "-L%s -lgnunetutil\n", libdir);
192 }
194 {
195 fprintf (stdout, "%s\n", prefixdir);
196 }
200 return 0;
201 }
203 {
205
207 "libgnunet_plugin_%s",
214 return iret;
215 }
216
217 {
219
221
223 {
227 NULL)) )
228 {
230 _ (
"Failed to load default configuration, exiting ...\n"));
233 return EXIT_FAILURE;
234 }
239 NULL))
240 {
242 _ (
"Failed to parse configuration, exiting ...\n"));
245 return EXIT_FAILURE;
246 }
247 }
248 else if (NULL != cfgfile)
249 {
252 {
254 _ (
"Unreadable configuration file `%s', exiting ...\n"),
255 cfgfile);
258 return EXIT_FAILURE;
259 }
263 cfgfile)
265 cfgfile)) )
266 {
268 _ (
"Malformed configuration file `%s', exiting ...\n"),
269 cfgfile);
272 return EXIT_FAILURE;
273 }
274 }
276 {
277
280 NULL))
281 {
283 _ (
"Malformed configuration file `%s', exiting ...\n"),
284 cfgfile);
286 return EXIT_FAILURE;
287 }
288 }
290 &argv[iret],
291 cfgfile,
295 }
298}
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_OPTION_END
struct GNUNET_GETOPT_CommandLineOption options[]
#define gettext_noop(String)
static struct GNUNET_CONFIGURATION_Handle * cfg
Our configuration.
static char * ram_config
Parse configuration from this memory.
static int no_defaults
Do not load default configuration.
static int libs
If printing the value of LIBS has been requested.
static char * backend_check
Backend to check if the respective plugin is loadable.
static int cflags
If printing the value of CFLAGS has been requested.
static int is_experimental
Check if this is an experimental build.
static int prefix
If printing the value of PREFIX has been requested.
static char * name
Name (label) of the records to list.
#define GNUNET_CONFIGURATION_CONFIG_OPTIONS(cs)
Macro that expands to a set of GNUNET-getopt directives to initialize a struct GNUNET_CONFIGURATION_C...
struct GNUNET_CONFIGURATION_Handle * GNUNET_CONFIGURATION_create(const struct GNUNET_OS_ProjectData *pd)
Create a new configuration object.
void GNUNET_CONFIGURATION_destroy(struct GNUNET_CONFIGURATION_Handle *cfg)
Destroy configuration object.
void GNUNET_CONFIGURATION_config_settings_free(struct GNUNET_CONFIGURATION_ConfigSettings *cs)
Free resources associated with cs.
void GNUNET_CONFIGURATION_config_tool_run(void *cls, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg)
Main task to run to perform operations typical for gnunet-config as per the configuration settings gi...
enum GNUNET_GenericReturnValue GNUNET_CONFIGURATION_deserialize(struct GNUNET_CONFIGURATION_Handle *cfg, const char *mem, size_t size, const char *source_filename)
De-serializes configuration.
char * GNUNET_CONFIGURATION_default_filename(const struct GNUNET_OS_ProjectData *pd)
Return the filename of the default configuration filename that is used when no explicit configuration...
enum GNUNET_GenericReturnValue GNUNET_CONFIGURATION_load(struct GNUNET_CONFIGURATION_Handle *cfg, const char *filename)
Load configuration.
enum GNUNET_GenericReturnValue GNUNET_CONFIGURATION_parse(struct GNUNET_CONFIGURATION_Handle *cfg, const char *filename)
Parse a configuration file, add all of the options in the file to the configuration environment.
enum GNUNET_GenericReturnValue GNUNET_DISK_file_test(const char *fil)
Check that fil corresponds to a filename (of a file that exists and that is not a directory).
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_option_cfgfile(char **fn)
Allow user to specify configuration file name (-c option)
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_option_logfile(char **logfn)
Allow user to specify log file name (-l option)
int GNUNET_GETOPT_run(const char *binaryOptions, const struct GNUNET_GETOPT_CommandLineOption *allOptions, unsigned int argc, char *const *argv)
Parse the command line.
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_option_exclusive(struct GNUNET_GETOPT_CommandLineOption opt)
Make the given option mutually exclusive with other options.
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_option_help(const struct GNUNET_OS_ProjectData *pd, const char *about)
Defining the option to print the command line help text (-h option).
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_option_loglevel(char **level)
Define the '-L' log level option.
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_option_flag(char shortName, const char *name, const char *description, int *val)
Allow user to specify a flag (which internally means setting an integer to 1/GNUNET_YES/GNUNET_OK.
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_option_string(char shortName, const char *name, const char *argumentHelp, const char *description, char **str)
Allow user to specify a string.
struct GNUNET_GETOPT_CommandLineOption GNUNET_GETOPT_option_version(const char *version)
Define the option to print the version of the application (-v option)
#define GNUNET_log(kind,...)
#define GNUNET_UTIL_VERSION
Version of the API (for entire gnunetutil.so library).
enum GNUNET_GenericReturnValue GNUNET_log_setup(const char *comp, const char *loglevel, const char *logfile)
Setup logging.
@ GNUNET_ERROR_TYPE_ERROR
int int GNUNET_asprintf(char **buf, const char *format,...) __attribute__((format(printf
Like asprintf, just portable.
#define GNUNET_free(ptr)
Wrapper around free.
const struct GNUNET_OS_ProjectData * GNUNET_OS_project_data_gnunet(void)
Return default project data used by 'libgnunetutil' for GNUnet.
char * GNUNET_OS_installation_get_path(const struct GNUNET_OS_ProjectData *pd, enum GNUNET_OS_InstallationPathKind dirkind)
Get the path to a specific GNUnet installation directory or, with GNUNET_OS_IPK_SELF_PREFIX,...
@ GNUNET_OS_IPK_LIBDIR
Return the directory where libraries are installed.
@ GNUNET_OS_IPK_PREFIX
Return the "PREFIX" directory given to configure.
enum GNUNET_GenericReturnValue GNUNET_PLUGIN_test(const struct GNUNET_OS_ProjectData *pd, const char *library_name)
Test if a plugin exists.
Closure for GNUNET_CONFIGURATION_config_tool_run() with settings for what should be done with the con...
int global_ret
Return value from the operation, to be returned from 'main'.
unsigned int api_version
Must be set to the API version, i.e.
const struct GNUNET_OS_ProjectData * pd
Project data for this configuration object.
Definition of a command line option.
Project-specific data used to help the OS subsystem find installation paths.
const char * user_config_file
Configuration file name to use (if $XDG_CONFIG_HOME is not set).
const char * config_file
Configuration file name (in $XDG_CONFIG_HOME) to use.
const char * version
String identifying the current project version.