Requirements • QuickStart • Overview • Support • License
Anchor is a lightweight CLI tool that grants the dynamic marketplace experience for local / CI environment by connecting to single/multiple remote repositories, each represents a different marketplace of domain, each with its own executable actions.
Every marketplace repository allows Anchor to centralize and organize a set of domain items into their own categories, every domain containing a list of executable single action and/or grouped actions (workflows) per item in a coherent, visible and easy-to-use approach.
Anchor connects to remote git repositories containing an opinionated structure that allows it to understand what is available, exposing pre-defined categories as a dynamicly created CLI commands with their underlying domain items as actions / workflows (actions-sets) using an interactive selector enriched with documentation or in a non-interactive mode via direct CLI command.
Anchor is still in alpha stage, breaking changes might occur, use it with caution ! |
🏴☠️ Requirements
- A Unix-like operating system: macOS, Linux
git
(recommended v2.30.0 or higher)
⚡️ QuickStart
The fastest way (for macOS
and Linux
) to install anchor
is using Homebrew:
brew install ZachiNachshon/tap/anchor
Alternatively, tap into the formula to have brew search capabilities on that tap formulas:
# Tap
brew tap ZachiNachshon/tap
# Install
brew install anchor
For additional installation methods read here.
⚓️ Overview
- Why creating
Anchor
? - How does it work?
- Create a marketplace repository
- Configuration
- Available features
- Other installation methods
Maintainers / Contributors:
⛵ Why Creating Anchor
?
- I believe that local environment management should be a smooth sailing - documented process with minimum context switches for running scripts / installing applications / orchestrate installations / do whatever you require on it
- Allowing to compose different actions from multiple channels (shell scripts, CLI utilities etc..) into a coherent well documented workflow with rollback procedure
- Having an action / workflow execution plan explained in plain english and managed via a central versioned controlled remote repository that can be shared with others to use
- Using an agnostic client that doesn't change, rather, changes are reflected based on remote marketplace state
🐳 How Does It Work?
This section contains a running anchor
CLI live running demo and an instructions section for interacting with a remote playground marketplace.
Live demo
Playground
Take anchor
for a spin using the following steps, connect to a remote playground repository and check the different use-cases it might be used for:
-
Register to a remote playground marketplace and set it as the default config context:
anchor config set-context-entry playground \ [email protected]:ZachiNachshon/anchorfiles-playground.git \ --set-current-context
-
Type
anchor
to print all available playground CLI commands -
Check which items are available under the
dummy-ops
command:anchor dummy-ops status
-
Select the
dummy-ops
command to interact with interactively:# Select a command item via an interactive prompter/search menu and try an action/workflow anchor dummy-ops select
-
Run an action directly from the playground non-interactively:
anchor dummy-ops run greeter --action=hello-world
-
Run workflows directly from the playground non-interactively:
# without output anchor dummy-ops run greeter-silent --workflow=good-manners-simulation # with output anchor dummy-ops run greeter --workflow=good-manners-simulation
-
You are welcome to use other playground CLI commands and run different actions for checking different use cases
💡 NoteThis is a quick overview just to get a grasp of how simple it is to use anchor.
To create your own remote marketplace, please read here.
Support
Anchor is an open source project that is currently self maintained in addition to my day job, you are welcome to show your appreciation by sending me cups of coffee using the the following link as it is a known fact that it is the fuel that drives software engineering
License
MIT