blob: 3bc20e91da561f4edd5c3eddb0988735759234e4 [file] [log] [blame]
David Reissae299be2008-05-19 23:48:54 -07001#include "cache.h"
2
3int main(int argc, char **argv)
4{
Johannes Sixtf42302b2009-02-07 16:08:30 +01005 if (argc == 3 && !strcmp(argv[1], "normalize_path_copy")) {
Johannes Schindelinb8469ad2009-01-28 00:07:36 +01006 char *buf = xmalloc(PATH_MAX + 1);
Johannes Sixtf42302b2009-02-07 16:08:30 +01007 int rv = normalize_path_copy(buf, argv[2]);
8 if (rv)
9 buf = "++failed++";
David Reissae299be2008-05-19 23:48:54 -070010 puts(buf);
Johannes Sixt2cd85c42009-02-07 16:08:27 +010011 return 0;
David Reissae299be2008-05-19 23:48:54 -070012 }
13
Carlos Martín Nietoe2a57aa2011-03-17 12:26:46 +010014 if (argc >= 2 && !strcmp(argv[1], "real_path")) {
David Reissd553e732008-05-19 23:49:00 -070015 while (argc > 2) {
Carlos Martín Nietoe2a57aa2011-03-17 12:26:46 +010016 puts(real_path(argv[2]));
David Reissd553e732008-05-19 23:49:00 -070017 argc--;
18 argv++;
19 }
Johannes Sixt2cd85c42009-02-07 16:08:27 +010020 return 0;
David Reissd553e732008-05-19 23:49:00 -070021 }
22
Michael Haggerty87a246e2011-08-04 06:47:47 +020023 if (argc >= 2 && !strcmp(argv[1], "absolute_path")) {
24 while (argc > 2) {
25 puts(absolute_path(argv[2]));
26 argc--;
27 argv++;
28 }
29 return 0;
30 }
31
David Reiss0454dd92008-05-19 23:49:26 -070032 if (argc == 4 && !strcmp(argv[1], "longest_ancestor_length")) {
33 int len = longest_ancestor_length(argv[2], argv[3]);
34 printf("%d\n", len);
Johannes Sixt2cd85c42009-02-07 16:08:27 +010035 return 0;
David Reiss0454dd92008-05-19 23:49:26 -070036 }
37
Michael Haggerty9e813722011-08-04 06:47:48 +020038 if (argc >= 4 && !strcmp(argv[1], "prefix_path")) {
39 char *prefix = argv[2];
40 int prefix_len = strlen(prefix);
41 int nongit_ok;
42 setup_git_directory_gently(&nongit_ok);
43 while (argc > 3) {
44 puts(prefix_path(prefix, prefix_len, argv[3]));
45 argc--;
46 argv++;
47 }
48 return 0;
49 }
50
Johannes Schindelin4fcc86b2009-02-19 20:10:49 +010051 if (argc == 4 && !strcmp(argv[1], "strip_path_suffix")) {
52 char *prefix = strip_path_suffix(argv[2], argv[3]);
53 printf("%s\n", prefix ? prefix : "(null)");
54 return 0;
55 }
56
Johannes Sixt2cd85c42009-02-07 16:08:27 +010057 fprintf(stderr, "%s: unknown function name: %s\n", argv[0],
58 argv[1] ? argv[1] : "(there was none)");
59 return 1;
David Reissae299be2008-05-19 23:48:54 -070060}