summaryrefslogtreecommitdiff
path: root/docs-src/content/functions/path.yml
blob: 4be768549611f96a9ccd99d096d167d2a8b223a9 (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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
ns: path
preamble: |
  gomplate's path functions are split into 2 namespaces:
  - `path`, which is useful for manipulating slash-based (`/`) paths, such as in URLs
  - `filepath`, which should be used for local filesystem paths, especially when Windows paths may be involved.

  This page documents the `path` namespace - see also the [`filepath`](../filepath) documentation.

  These functions are wrappers for Go's [`path`](https://golang.org/pkg/path/) and [`path/filepath`](https://golang.org/pkg/path/filepath/) packages.
funcs:
  - name: path.Base
    description: |
      Returns the last element of path. Trailing slashes are removed before extracting the last element. If the path is empty, Base returns `.`. If the path consists entirely of slashes, Base returns `/`.

      A wrapper for Go's [`path.Base`](https://golang.org/pkg/path/#Base) function.
    pipeline: true
    arguments:
      - name: path
        required: true
        description: The input path
    examples:
      - |
        $ gomplate -i '{{ path.Base "/tmp/foo" }}'
        foo
  - name: path.Clean
    description: |
      Clean returns the shortest path name equivalent to path by purely lexical processing.

      A wrapper for Go's [`path.Clean`](https://golang.org/pkg/path/#Clean) function.
    pipeline: true
    arguments:
      - name: path
        required: true
        description: The input path
    examples:
      - |
        $ gomplate -i '{{ path.Clean "/tmp//foo/../" }}'
        /tmp
  - name: path.Dir
    description: |
      Returns all but the last element of path, typically the path's directory.

      A wrapper for Go's [`path.Dir`](https://golang.org/pkg/path/#Dir) function.
    pipeline: true
    arguments:
      - name: path
        required: true
        description: The input path
    examples:
      - |
        $ gomplate -i '{{ path.Dir "/tmp/foo" }}'
        /tmp
  - name: path.Ext
    description: |
      Returns the file name extension used by path.

      A wrapper for Go's [`path.Ext`](https://golang.org/pkg/path/#Ext) function.
    pipeline: true
    arguments:
      - name: path
        required: true
        description: The input path
    examples:
      - |
        $ gomplate -i '{{ path.Ext "/tmp/foo.csv" }}'
        .csv
  - name: path.IsAbs
    description: |
      Reports whether the path is absolute.

      A wrapper for Go's [`path.IsAbs`](https://golang.org/pkg/path/#IsAbs) function.
    pipeline: true
    arguments:
      - name: path
        required: true
        description: The input path
    examples:
      - |
        $ gomplate -i 'the path is {{ if (path.IsAbs "/tmp/foo.csv") }}absolute{{else}}relative{{end}}'
        the path is absolute
        $ gomplate -i 'the path is {{ if (path.IsAbs "../foo.csv") }}absolute{{else}}relative{{end}}'
        the path is relative
  - name: path.Join
    description: |
      Joins any number of path elements into a single path, adding a separating slash if necessary.

      A wrapper for Go's [`path.Join`](https://golang.org/pkg/path/#Join) function.
    arguments:
      - name: elem...
        required: true
        description: The path elements to join (0 or more)
    examples:
      - |
        $ gomplate -i '{{ path.Join "/tmp" "foo" "bar" }}'
        /tmp/foo/bar
  - name: path.Match
    description: |
      Reports whether name matches the shell file name pattern.

      A wrapper for Go's [`path.Match`](https://golang.org/pkg/path/#Match) function.
    arguments:
      - name: pattern
        required: true
        description: The pattern to match on
      - name: path
        required: true
        description: The path to match
    examples:
      - |
        $ gomplate -i '{{ path.Match "*.csv" "foo.csv" }}'
        true
  - name: path.Split
    description: |
      Splits path immediately following the final slash, separating it into a directory and file name component.

      The function returns an array with two values, the first being the diretory, and the second the file.

      A wrapper for Go's [`path.Split`](https://golang.org/pkg/path/#Split) function.
    pipeline: true
    arguments:
      - name: path
        required: true
        description: The input path
    examples:
      - |
        $ gomplate -i '{{ $p := path.Split "/tmp/foo" }}{{ $dir := index $p 0 }}{{ $file := index $p 1 }}dir is {{$dir}}, file is {{$file}}'
        dir is /tmp/, file is foo