]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
Add -d/--directory option
authorJoel Rosdahl <joel@rosdahl.net>
Fri, 7 Aug 2020 12:20:02 +0000 (14:20 +0200)
committerJoel Rosdahl <joel@rosdahl.net>
Fri, 7 Aug 2020 12:20:02 +0000 (14:20 +0200)
The option makes subsequent command line options operate on the given
cache directory instead of the default.

doc/MANUAL.adoc
src/ccache.cpp

index 1f7c0f2878b4a558049e6371dafe295b7e7997fd..c2d800de04d0370263e0a629fd463f5b4c27555d 100644 (file)
@@ -94,6 +94,12 @@ Common options
     Clear the entire cache, removing all cached files, but keeping the
     configuration file.
 
+*`-d`*, *`--directory`* _PATH_
+
+    Let the subsequent command line options operate on cache directory PATH
+    instead of the default for. For example, to show statistics for a cache
+    directory at `/shared/ccache` you can run `ccache -d /shared/ccache -s`.
+
 *`--evict-older-than`* _AGE_::
 
     Remove files older than _AGE_ from the cache. _AGE_ should be an unsigned
index aca5877849f0a7b7dec95ae1f9c8cc9bcbf9722a..d02fc4e6e5aa4db1add807f5ea8ff3f1b7ba6c7e 100644 (file)
@@ -102,6 +102,8 @@ Common options:
                                (normally not needed as this is done
                                automatically)
     -C, --clear                clear the cache completely (except configuration)
+    -d, --directory PATH       operate on cache directory PATH instead of the
+                               default
         --evict-older-than AGE remove files older than AGE (unsigned integer
                                with a d (days) or s (seconds) suffix)
     -F, --max-files NUM        set maximum number of files in cache to NUM (use
@@ -2170,6 +2172,7 @@ handle_main_options(int argc, const char* const* argv)
     {"checksum-file", required_argument, nullptr, CHECKSUM_FILE},
     {"cleanup", no_argument, nullptr, 'c'},
     {"clear", no_argument, nullptr, 'C'},
+    {"directory", no_argument, nullptr, 'd'},
     {"dump-manifest", required_argument, nullptr, DUMP_MANIFEST},
     {"dump-result", required_argument, nullptr, DUMP_RESULT},
     {"evict-older-than", required_argument, nullptr, EVICT_OLDER_THAN},
@@ -2195,7 +2198,7 @@ handle_main_options(int argc, const char* const* argv)
   int c;
   while ((c = getopt_long(argc,
                           const_cast<char* const*>(argv),
-                          "cCk:hF:M:po:sVxX:z",
+                          "cCd:k:hF:M:po:sVxX:z",
                           options,
                           nullptr))
          != -1) {
@@ -2282,6 +2285,10 @@ handle_main_options(int argc, const char* const* argv)
       break;
     }
 
+    case 'd': // --directory
+      Util::setenv("CCACHE_DIR", arg);
+      break;
+
     case 'h': // --help
       fmt::print(stdout, USAGE_TEXT, CCACHE_NAME, CCACHE_NAME);
       exit(EXIT_SUCCESS);