Commit 49a1a436 authored by Rusty Russell's avatar Rusty Russell

tools: use tal/path instead of opencoding most paths.

Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
parent 09d5cd70
...@@ -647,7 +647,7 @@ int main(int argc, char *argv[]) ...@@ -647,7 +647,7 @@ int main(int argc, char *argv[])
strmap_iterate(&tests, add_to_all, &all); strmap_iterate(&tests, add_to_all, &all);
/* This links back to the module's test dir. */ /* This links back to the module's test dir. */
testlink = tal_fmt(NULL, "%s/test", temp_dir()); testlink = path_join(NULL, temp_dir(), "test");
/* Defaults to pwd. */ /* Defaults to pwd. */
if (argc == 1) { if (argc == 1) {
...@@ -656,12 +656,8 @@ int main(int argc, char *argv[]) ...@@ -656,12 +656,8 @@ int main(int argc, char *argv[])
} }
for (i = 1; i < argc; i++) { for (i = 1; i < argc; i++) {
dir = argv[i]; dir = path_simplify(NULL,
take(path_join(NULL, base_dir, argv[i])));
if (dir[0] != '/')
dir = tal_fmt(NULL, "%s/%s", base_dir, dir);
while (strends(dir, "/"))
dir[strlen(dir)-1] = '\0';
got_dir: got_dir:
/* We assume there's a ccan/ in there somewhere... */ /* We assume there's a ccan/ in there somewhere... */
...@@ -685,7 +681,7 @@ int main(int argc, char *argv[]) ...@@ -685,7 +681,7 @@ int main(int argc, char *argv[])
/* Create a symlink from temp dir back to src dir's /* Create a symlink from temp dir back to src dir's
* test directory. */ * test directory. */
unlink(testlink); unlink(testlink);
if (symlink(tal_fmt(m, "%s/test", dir), testlink) != 0) if (symlink(path_join(m, dir, "test"), testlink) != 0)
err(1, "Creating test symlink in %s", temp_dir()); err(1, "Creating test symlink in %s", temp_dir());
if (!run_tests(&all, summary, m, prefix)) if (!run_tests(&all, summary, m, prefix))
......
#include <tools/ccanlint/ccanlint.h> #include <tools/ccanlint/ccanlint.h>
#include <tools/tools.h> #include <tools/tools.h>
#include <ccan/str/str.h> #include <ccan/str/str.h>
#include <ccan/tal/path/path.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <fcntl.h> #include <fcntl.h>
...@@ -30,7 +31,7 @@ static bool add_dep(struct manifest *m, ...@@ -30,7 +31,7 @@ static bool add_dep(struct manifest *m,
{ {
struct stat st; struct stat st;
struct manifest *subm; struct manifest *subm;
char *dir = tal_fmt(m, "%s/%s", ccan_dir, dep); char *dir = path_join(m, ccan_dir, dep);
/* FIXME: get_manifest has a tendency to exit. */ /* FIXME: get_manifest has a tendency to exit. */
if (stat(dir, &st) != 0) { if (stat(dir, &st) != 0) {
......
#include <tools/ccanlint/ccanlint.h> #include <tools/ccanlint/ccanlint.h>
#include <ccan/tal/tal.h> #include <ccan/tal/tal.h>
#include <ccan/tal/str/str.h> #include <ccan/tal/str/str.h>
#include <ccan/tal/path/path.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <fcntl.h> #include <fcntl.h>
...@@ -73,7 +74,7 @@ static void handle_license_link(struct manifest *m, struct score *score) ...@@ -73,7 +74,7 @@ static void handle_license_link(struct manifest *m, struct score *score)
{ {
struct doc_section *d = find_license_tag(m); struct doc_section *d = find_license_tag(m);
const char *prefix = link_prefix(m); const char *prefix = link_prefix(m);
const char *link = tal_fmt(m, "%s/LICENSE", m->dir); const char *link = path_join(m, m->dir, "LICENSE");
const char *ldest = expected_link(score, prefix, m->license); const char *ldest = expected_link(score, prefix, m->license);
char *q; char *q;
...@@ -97,7 +98,7 @@ static void check_has_license(struct manifest *m, ...@@ -97,7 +98,7 @@ static void check_has_license(struct manifest *m,
{ {
char buf[PATH_MAX]; char buf[PATH_MAX];
ssize_t len; ssize_t len;
char *license = tal_fmt(m, "%s/LICENSE", m->dir); char *license = path_join(m, m->dir, "LICENSE");
const char *expected; const char *expected;
struct doc_section *d; struct doc_section *d;
const char *prefix = link_prefix(m); const char *prefix = link_prefix(m);
......
#include <tools/ccanlint/ccanlint.h> #include <tools/ccanlint/ccanlint.h>
#include <tools/tools.h> #include <tools/tools.h>
#include <ccan/str/str.h> #include <ccan/str/str.h>
#include <ccan/tal/path/path.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <fcntl.h> #include <fcntl.h>
...@@ -35,7 +36,7 @@ void build_objects(struct manifest *m, ...@@ -35,7 +36,7 @@ void build_objects(struct manifest *m,
list_for_each(&m->c_files, i, list) { list_for_each(&m->c_files, i, list) {
char *output; char *output;
char *fullfile = tal_fmt(m, "%s/%s", m->dir, i->name); char *fullfile = path_join(m, m->dir, i->name);
i->compiled[ctype] = temp_file(m, "", fullfile); i->compiled[ctype] = temp_file(m, "", fullfile);
if (!compile_object(score, fullfile, ccan_dir, compiler, flags, if (!compile_object(score, fullfile, ccan_dir, compiler, flags,
......
#include <tools/ccanlint/ccanlint.h> #include <tools/ccanlint/ccanlint.h>
#include <ccan/tal/str/str.h> #include <ccan/tal/str/str.h>
#include <ccan/tal/path/path.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <fcntl.h> #include <fcntl.h>
...@@ -106,7 +107,7 @@ static void check_tests_exist(struct manifest *m, ...@@ -106,7 +107,7 @@ static void check_tests_exist(struct manifest *m,
unsigned int *timeleft, struct score *score) unsigned int *timeleft, struct score *score)
{ {
struct stat st; struct stat st;
char *test_dir = tal_fmt(m, "%s/test", m->dir); char *test_dir = path_join(m, m->dir, "test");
if (lstat(test_dir, &st) != 0) { if (lstat(test_dir, &st) != 0) {
score->error = tal_strdup(score, "No test directory"); score->error = tal_strdup(score, "No test directory");
......
#include <ccan/str/str.h> #include <ccan/str/str.h>
#include <ccan/read_write_all/read_write_all.h> #include <ccan/read_write_all/read_write_all.h>
#include <ccan/rbuf/rbuf.h> #include <ccan/rbuf/rbuf.h>
#include <ccan/tal/path/path.h>
#include <ccan/compiler/compiler.h> #include <ccan/compiler/compiler.h>
#include <ccan/err/err.h> #include <ccan/err/err.h>
#include "tools.h" #include "tools.h"
...@@ -125,7 +126,7 @@ static char **get_one_safe_deps(const void *ctx, ...@@ -125,7 +126,7 @@ static char **get_one_safe_deps(const void *ctx,
unsigned int i, n; unsigned int i, n;
bool correct_style = false; bool correct_style = false;
fname = tal_fmt(ctx, "%s/_info", dir); fname = path_join(ctx, dir, "_info");
raw = tal_grab_file(fname, fname, NULL); raw = tal_grab_file(fname, fname, NULL);
if (!raw) if (!raw)
errx(1, "Could not open %s", fname); errx(1, "Could not open %s", fname);
...@@ -206,7 +207,7 @@ get_all_deps(const void *ctx, const char *dir, const char *style, ...@@ -206,7 +207,7 @@ get_all_deps(const void *ctx, const char *dir, const char *style,
if (!strstarts(deps[i], "ccan/")) if (!strstarts(deps[i], "ccan/"))
continue; continue;
subdir = tal_fmt(ctx, "%s/%s", find_ccan_dir(dir), deps[i]); subdir = path_join(ctx, find_ccan_dir(dir), deps[i]);
newdeps = get_one(ctx, subdir, "depends", get_info); newdeps = get_one(ctx, subdir, "depends", get_info);
/* Should be short, so brute-force out dups. */ /* Should be short, so brute-force out dups. */
...@@ -279,8 +280,7 @@ char **get_libs(const void *ctx, const char *dir, const char *style, ...@@ -279,8 +280,7 @@ char **get_libs(const void *ctx, const char *dir, const char *style,
if (!strstarts(deps[i], "ccan/")) if (!strstarts(deps[i], "ccan/"))
continue; continue;
subdir = tal_fmt(ctx, "%s/%s", subdir = path_join(ctx, find_ccan_dir(dir), deps[i]);
find_ccan_dir(dir), deps[i]);
newlibs = get_one_libs(ctx, subdir, get_info); newlibs = get_one_libs(ctx, subdir, get_info);
newlen = tal_count(newlibs); newlen = tal_count(newlibs);
......
...@@ -76,7 +76,7 @@ struct ccan_file *new_ccan_file(const void *ctx, const char *dir, char *name) ...@@ -76,7 +76,7 @@ struct ccan_file *new_ccan_file(const void *ctx, const char *dir, char *name)
for (i = 0; i < ARRAY_SIZE(f->compiled); i++) for (i = 0; i < ARRAY_SIZE(f->compiled); i++)
f->compiled[i] = NULL; f->compiled[i] = NULL;
f->name = tal_steal(f, name); f->name = tal_steal(f, name);
f->fullname = tal_fmt(f, "%s/%s", dir, f->name); f->fullname = path_join(f, dir, f->name);
f->contents = NULL; f->contents = NULL;
f->simplified = NULL; f->simplified = NULL;
return f; return f;
......
...@@ -256,7 +256,8 @@ static void analyze_headers(const char *dir, struct replace **repl) ...@@ -256,7 +256,8 @@ static void analyze_headers(const char *dir, struct replace **repl)
char *hdr, *contents; char *hdr, *contents;
/* Get hold of header, assume that's it. */ /* Get hold of header, assume that's it. */
hdr = tal_fmt(dir, "%s/%s.h", dir, path_basename(dir, dir)); hdr = tal_fmt(dir, "%s.h",
path_join(NULL, dir, take(path_basename(NULL, dir))));
contents = tal_grab_file(dir, hdr, NULL); contents = tal_grab_file(dir, hdr, NULL);
if (!contents) if (!contents)
...@@ -275,7 +276,7 @@ static void analyze_headers(const char *dir, struct replace **repl) ...@@ -275,7 +276,7 @@ static void analyze_headers(const char *dir, struct replace **repl)
static void write_replacement_file(const char *dir, struct replace **repl) static void write_replacement_file(const char *dir, struct replace **repl)
{ {
char *replname = tal_fmt(dir, "%s/.namespacize", dir); char *replname = path_join(dir, dir, ".namespacize");
int fd; int fd;
struct replace *r; struct replace *r;
...@@ -415,10 +416,7 @@ static void convert_dir(const char *dir) ...@@ -415,10 +416,7 @@ static void convert_dir(const char *dir)
struct adjusted *adj = NULL; struct adjusted *adj = NULL;
/* Remove any ugly trailing slashes. */ /* Remove any ugly trailing slashes. */
name = tal_strdup(NULL, dir); name = path_canon(NULL, dir);
while (strends(name, "/"))
name[strlen(name)-1] = '\0';
analyze_headers(name, &replace); analyze_headers(name, &replace);
write_replacement_file(name, &replace); write_replacement_file(name, &replace);
setup_adjust_files(name, replace, &adj); setup_adjust_files(name, replace, &adj);
...@@ -430,7 +428,7 @@ static void convert_dir(const char *dir) ...@@ -430,7 +428,7 @@ static void convert_dir(const char *dir)
static struct replace *read_replacement_file(const char *depdir) static struct replace *read_replacement_file(const char *depdir)
{ {
struct replace *repl = NULL; struct replace *repl = NULL;
char *replname = tal_fmt(depdir, "%s/.namespacize", depdir); char *replname = path_join(depdir, depdir, ".namespacize");
char *file, **line; char *file, **line;
file = tal_grab_file(replname, replname, NULL); file = tal_grab_file(replname, replname, NULL);
...@@ -459,7 +457,7 @@ static void adjust_dir(const char *dir) ...@@ -459,7 +457,7 @@ static void adjust_dir(const char *dir)
struct adjusted *adj = NULL; struct adjusted *adj = NULL;
struct replace *repl; struct replace *repl;
depdir = tal_fmt(parent, "%s/%s", parent, *deps); depdir = path_join(parent, parent, *deps);
repl = read_replacement_file(depdir); repl = read_replacement_file(depdir);
if (repl) { if (repl) {
verbose("%s has been namespacized\n", depdir); verbose("%s has been namespacized\n", depdir);
...@@ -488,7 +486,7 @@ static void adjust_dependents(const char *dir) ...@@ -488,7 +486,7 @@ static void adjust_dependents(const char *dir)
if (path_basename(*file, *file)[0] == '.') if (path_basename(*file, *file)[0] == '.')
continue; continue;
info = tal_fmt(*file, "%s/_info", *file); info = path_join(*file, *file, "_info");
if (access(info, R_OK) != 0) if (access(info, R_OK) != 0)
continue; continue;
......
#include <ccan/err/err.h> #include <ccan/err/err.h>
#include <ccan/str/str.h> #include <ccan/str/str.h>
#include <ccan/tal/path/path.h>
#include "read_config_header.h" #include "read_config_header.h"
#include "tools.h" #include "tools.h"
#include <string.h> #include <string.h>
...@@ -90,7 +91,7 @@ char *read_config_header(const char *ccan_dir, ...@@ -90,7 +91,7 @@ char *read_config_header(const char *ccan_dir,
const char **compiler, const char **cflags, const char **compiler, const char **cflags,
bool verbose) bool verbose)
{ {
char *fname = tal_fmt(NULL, "%s/config.h", ccan_dir); char *fname = path_join(NULL, ccan_dir, "config.h");
char **lines; char **lines;
unsigned int i; unsigned int i;
char *config_header; char *config_header;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment