Glob patterns document -- persist_to_workspace paths

We are using Glob from Go, and the pattern matches filepath.Match.

pattern:
	{ term }
term:
	'*'         matches any sequence of non-Separator characters
	'?'         matches any single non-Separator character
	'[' [ '^' ] { character-range } ']'
	            character class (must be non-empty)
	c           matches character c (c != '*', '?', '\\', '[')
	'\\' c      matches character c

character-range:
	c           matches character c (c != '\\', '-', ']')
	'\\' c      matches character c
	lo '-' hi   matches character c for lo <= c <= hi

Per the Go docs:

The pattern may describe hierarchical names such as /usr/*/bin/ed (assuming the Separator is '/'). 

So in your specific example ./packages/*/lib/* should suffice.

Please note that everything must be relative to the work space root directory.

cc @michelle-luna we could probably just snag that right out of the Go docs and put it in ours since its the source of truth.

1 Like