PipeScript icon indicating copy to clipboard operation
PipeScript copied to clipboard

Look out, using Technology

Open StartAutomating opened this issue 1 year ago • 0 comments

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.
    )
)

StartAutomating avatar Mar 15 '24 03:03 StartAutomating