diff options
-rwxr-xr-x | cachedir | 30 |
1 files changed, 28 insertions, 2 deletions
@@ -16,6 +16,7 @@ import cliapp +import os __version__ = '0.0' @@ -23,7 +24,32 @@ __version__ = '0.0' class Cachedir(cliapp.Application): - pass - + _tag_name = 'CACHEDIR.TAG' + _tag = 'Signature: 8a477f597d28d172789f06886806bc55\n' + + def _join(self, dirname): + return os.path.join(dirname, self._tag_name) + + def cmd_tag(self, args): + '''Add cache tag to directories.''' + + for dirname in args: + with open(self._join(dirname), 'w') as f: + f.write(self._tag) + + def cmd_untag(self, args): + '''Remove cache tag from directories.''' + + for dirname in args: + os.remove(self._join(dirname)) + + def cmd_find(self, args): + '''Find cache directories under the given directories.''' + + for startdir in args: + for dirname, subdirs, filenames in os.walk(startdir): + if os.path.exists(self._join(dirname)): + self.output.write('%s\n' % dirname) + Cachedir(version=__version__).run() |