All Projects → ZachiNachshon → anchor

ZachiNachshon / anchor

Licence: MIT license
Create Dynamic CLI's as your GitOps Marketplace

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects
Makefile
30231 projects

Projects that are alternatives of or similar to anchor

simple json
Simple way to dynamically convert from and to JSON using build-time generators given a type.
Stars: ✭ 15 (-60.53%)
Mutual labels:  dynamic, generic
Forge
A Generic Low-Code Framework Built on a Config-Driven Tree Walker
Stars: ✭ 70 (+84.21%)
Mutual labels:  dynamic, generic
rhq
Manages your local repositories
Stars: ✭ 48 (+26.32%)
Mutual labels:  version-control
unique-marketplace
Marketplace for Unique NFT tokens
Stars: ✭ 18 (-52.63%)
Mutual labels:  marketplace
DynamicComponents-AI2
An App Inventor extension to add full support for creating any type of component at runtime, in your app.
Stars: ✭ 47 (+23.68%)
Mutual labels:  dynamic
git-history-flow
Visualize the evolution of a file tracked by git
Stars: ✭ 17 (-55.26%)
Mutual labels:  version-control
DuktapeJava
Tiny Powerfull JavaScript Engine On Android Platform integrating with java
Stars: ✭ 74 (+94.74%)
Mutual labels:  dynamic
github-readme-streak-stats
🔥 Stay motivated and show off your contribution streak! 🌟 Display your total contributions, current streak, and longest streak on your GitHub profile README
Stars: ✭ 1,395 (+3571.05%)
Mutual labels:  dynamic
atomig
Generic and convenient `std` atomics via `Atomic<T>`
Stars: ✭ 32 (-15.79%)
Mutual labels:  generic
io-api
📐 API design example by I/O, the demo implementation of https://dzone.com/articles/generic-inputoutput-api-java
Stars: ✭ 46 (+21.05%)
Mutual labels:  generic
GenericAdapter
⛳️ Easy to use android databinding ready recyclerview adapter
Stars: ✭ 26 (-31.58%)
Mutual labels:  generic
ODYM
Open Dynamic Material Systems Model
Stars: ✭ 36 (-5.26%)
Mutual labels:  dynamic
marketplace
Marketplace is a place where you can find services you need for your research
Stars: ✭ 16 (-57.89%)
Mutual labels:  marketplace
Swiftish
A fully generic Swift vector & matrix library
Stars: ✭ 17 (-55.26%)
Mutual labels:  generic
github-readme-linkedin
📋 A serverless application to get dynamically generated images from your LinkedIn profile on your GitHub READMEs
Stars: ✭ 52 (+36.84%)
Mutual labels:  dynamic
Dynamic ORB SLAM2
Visual SLAM system that can identify and exclude dynamic objects.
Stars: ✭ 89 (+134.21%)
Mutual labels:  dynamic
dynamic-input-fields-reactjs
Example of the dynamic input fields in ReactJS
Stars: ✭ 31 (-18.42%)
Mutual labels:  dynamic
dynamic-datasource-starter
springboot 动态切换数据的基本思想与实现方法
Stars: ✭ 12 (-68.42%)
Mutual labels:  dynamic
github-status-updater
Command line utility for updating GitHub commit statuses and enabling required status checks for pull requests
Stars: ✭ 83 (+118.42%)
Mutual labels:  ci-environment
tfvars-annotations
[not-WIP] Update values in terraform.tfvars using annotations
Stars: ✭ 20 (-47.37%)
Mutual labels:  dynamic

Go Version GitHub CI status Go Report Card Go Coverage Go Releases License: MIT

RequirementsQuickStartOverviewSupportLicense


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.

WARNING
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

Maintainers / Contributors:


Why Creating Anchor?

  1. 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
  2. Allowing to compose different actions from multiple channels (shell scripts, CLI utilities etc..) into a coherent well documented workflow with rollback procedure
  3. 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
  4. 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

See anchor live in action

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:

  1. 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
  2. Type anchor to print all available playground CLI commands

  3. Check which items are available under the dummy-ops command:

    anchor dummy-ops status
  4. 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
  5. Run an action directly from the playground non-interactively:

    anchor dummy-ops run greeter --action=hello-world
  6. 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
  7. You are welcome to use other playground CLI commands and run different actions for checking different use cases

    💡 Note
    This 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

Buy Me A Coffee


License

MIT


Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].