PipeScript
PipeScript copied to clipboard
Look out, using Technology
Using Technology
PipeScript has already benefited greatly from having an in-memory database of languages, with an open-ended definition for any language.
This approach should be broadened in scope, since the term "Language" does not exactly fit a variety of use-cases.
Therefore, PipeScript will begin to define "Technologies", which can describe any technology in an open-ended way.
Think of it as "an internal database of things we could work with".
This will be most directly exposed with a variable.
- [ ] #1067
This is as broad of a brush as one can paint with, and would effectively be a venn diagram encompassing all tech.* or technology.* commands, all languages, all command types, and all PowerShell modules.
By collecting things in this manner, we should be able to have one centralized location for things that can be Interpreted, Compiled, Translated, Published, etc.
Scenarios
This should be especially useful in interpretation of protocols and command types, as it simplifies the approach.
It will also be very useful in describing publishing of sites (#1038), as it gives a simple keyword we can use to describe what should be publishing a site or a mirror.
For example, if this was in a manifest's PrivateData:
Website = @{
Name = 'MyDocs'
Tech = 'Jekyll' # additional friendly names will also be acceptable
Root = '/docs'
}
We could easily pair this information with a publish command.
This means that using almost any technology in a uniform way could be described in succinct syntax.
Here are some useful scenarios:
- [ ] #1068
- [ ] #1069
- [ ] #1070
Command Type Description
The core technical implementation of this issue is defining the Command type of "Technology".
For reference, the pattern for a Technology should be:
(?>
(?>^|[\p{P}-[\-]]) # After non-dash punctuation or the start of a string
(?>
Tech(?>s|nology)? # Various forms of the word technology
| # or
Engines? # Engine or Engines
|
Frameworks? # Framework or Frameworks
|
Platforms? # Platform or Platforms
)
(?> # Followed by either
\.\w$ # any extension and end of string
| # or
\p{P} # any other punctuation.
)
)