blob: b0646c0d1c84a2825d1622067c79ecb23aaa3728 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
---
title: "`cachedir`—cache directory tag management"
author: The Obnam project
template: rust
bindings:
- lib/files.yaml
- lib/runcmd.yaml
...
# Introduction
[Cache Directory Tagging Specification]: http://www.bford.info/cachedir/
The `cachedir` utility manages tags for cache directories. A cache
directory tag is specified in [Cache Directory Tagging
Specification][], and is a file called `CACHEDIR.TAG`, where the first
line consists of:
~~~
Signature: 8a477f597d28d172789f06886806bc55
~~~
Creating such files by hand is easy enough, but `cachedir` makes it a
little easier.
Many backup programs recognize cache directory tags and can exclude
such directories.
# Data files for testing
We will use two files for testing: one is a valid `CACHEDIR.TAG` and
the other isn't.
~~~{#CACHEDIR.TAG .file}
Signature: 8a477f597d28d172789f06886806bc55
~~~
~~~{#not-a-cache .file}
This is not a cache directory tag.
~~~
# Managing cache directories
_Requirement: The tool must find cache directories, and add and remove
tags as requested._
We should find no cache directories, if there aren't any.
given an installed cachedir program
~~~scenario
when I run cachedir find .
then stdout is exactly ""
~~~
When we create a directory, and a `CACHEDIR.TAG` file with the wrong
contents, it's not a cache directory.
~~~scenario
given a directory foo
given file foo/CACHEDIR.TAG from not-a-tag
when I run cachedir .
then stdout is exactly ""
~~~
When we create an actual tag, the directory is found.
~~~scenario
given a directory bar
when I run cachedir tag bar
when I run cachedir find .
then stdout contains "/bar"
~~~
Finally, we should again find no cache directories if we remove that tag.
~~~scenario
when I run cachedir untag bar
when I run cachedir find .
then stdout is exactly ""
~~~
|