diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2011-10-14 04:55:05 +0200 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2011-10-14 04:55:05 +0200 |
commit | 6aa0e0017d7d0cddc006da885946934b06949a91 (patch) | |
tree | 66b688ec32e2f91266db760b1762f2a50cc52036 /libslang/slsh/scripts/badlinks | |
parent | a966db5b71328f6adf9dd767e64b322a3bd7ed9c (diff) | |
download | erlang-slang-fork-6aa0e0017d7d0cddc006da885946934b06949a91.tar.gz |
include libslang-1.4.9 and automatically build it and link erlang-slang against it
few (erlang) people will still have libslang-1.4.9 installed or spend time
to get it to link against the driver
Diffstat (limited to 'libslang/slsh/scripts/badlinks')
-rwxr-xr-x | libslang/slsh/scripts/badlinks | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/libslang/slsh/scripts/badlinks b/libslang/slsh/scripts/badlinks new file mode 100755 index 0000000..77409bd --- /dev/null +++ b/libslang/slsh/scripts/badlinks @@ -0,0 +1,78 @@ +#!/usr/bin/env slsh +% Find links that point to non-existent files + +static define warn () +{ + variable args = __pop_args (_NARGS-1); + variable err = (); + variable msg; + + msg = sprintf (__push_args (args)); + + if (err) + err = ": " + errno_string (err); + else + err == ""; + + () = fprintf (stderr, "%s: %s%s\n", + __argv[0], msg, err); +} + +static define badlinks (dir) +{ + variable files, file; + variable st; + + files = listdir (dir); + if (files == NULL) + { + warn (errno, dir); + return; + } + + foreach (files) + { + file = (); + + file = path_concat (dir, file); + st = stat_file (file); + if (st != NULL) + continue; + + if (errno != ENOENT) + { + warn (errno, file); + continue; + } + + if (-1 == fprintf (stdout, "%s\n", file)) + break; + } +} + +define main (argc, argv) +{ + if (argc > 1) + { + if (argv[1] == "--help") + { + () = fprintf (stdout, "Usage: %s [--help] [dirs....]\n", + __argv[0]); + exit (1); + } + } + + if (argc == 1) + { + badlinks ("."); + exit (0); + } + + foreach (argv[[1:]]) + badlinks (); + + exit (0); +} + +main (__argc, __argv); + |