#include "configdir.h"
#include <ccan/opt/opt.h>
#include <ccan/tal/path/path.h>
#include <ccan/tal/str/str.h>
#include <errno.h>

/* Override a tal string; frees the old one. */
char *opt_set_talstr(const char *arg, char **p)
{
	tal_free(*p);
	return opt_set_charp(tal_strdup(NULL, arg), p);
}

static char *default_configdir(const tal_t *ctx)
{
	char *path;
	const char *env = getenv("HOME");
	if (!env)
		return ".";

	path = path_join(ctx, env, ".lightning");
	return path;
}

void configdir_register_opts(const tal_t *ctx,
			     char **configdir, char **rpc_filename)
{
	*configdir = default_configdir(ctx);
	*rpc_filename =	tal_strdup(ctx, "lightning-rpc");

	opt_register_early_arg("--lightning-dir=<dir>", opt_set_talstr, opt_show_charp,
			       configdir,
			       "Set working directory. All other files are relative to this");

	opt_register_arg("--rpc-file", opt_set_talstr, opt_show_charp,
			 rpc_filename,
			 "Set JSON-RPC socket (or /dev/tty)");
}