Hephaestus

A powerful Command Line Interface (CLI) tool designed to streamline development workflows through a flexible plugin architecture.

2
0
Python

Contributors
Forks
Stargazers
Issues
MIT License
LinkedIn


Hastega Logo

HEPHAESTUS

A powerful Command Line Interface (CLI) tool designed to streamline development workflows through a flexible plugin architecture.

Table of Contents
  1. About The Project
  2. Getting Started
  3. Commands
  4. Roadmap
  5. Contributing
  6. License
  7. Contact

About The Project

Hephaestus is a versatile CLI tool built to enhance developer productivity. Its core strength lies in its plugin-based architecture, which allows for easy extension and customization. Developers can create and integrate new functionalities as plugins, keeping the core program clean and modular. This approach ensures that Hephaestus can adapt to evolving needs and workflows without requiring extensive code modifications.

Built With

  • Python

Getting Started

Prerequisites

  • Python 3.8+: Hephaestus is built on Python and requires a compatible version.
  • Git: Required for installing plugins from Git repositories.
  • pip: Python package installer.

Installation

Install on a Debian-based Linux Distro

  1. Add Google Cloud Keyring:

    curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/google-keyring.gpg
    
  2. Add APT Source List:

    echo 'deb [signed-by=/usr/share/keyrings/google-keyring.gpg] https://europe-west1-apt.pkg.dev/projects/hastega-global-resources hastega main' | sudo tee -a /etc/apt/sources.list.d/hastega.list
    
  3. Update and Install:

    sudo apt update
    sudo apt install git pip python3-hep
    

    Note: If you have problems with sudo try to run the commands without it.

Install from Source Code

  1. Clone the Repository:

    git clone https://github.com/hastega/Hephaestus.git
    
  2. Navigate to the Directory:

    cd Hephaestus
    
  3. Install with pip:

    pip install .
    

    Note: In some cases, pip might suggest using the --break-system-packages parameter. Use it if necessary.

Try it in Docker

Quickly test Hephaestus in a disposable Docker container:

docker run -e TERM -e COLORTERM -w /root -it --rm debian bash -uec '
curl  https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/google-keyring.gpg
echo 'deb [signed-by=/usr/share/keyrings/google-keyring.gpg] https://europe-west1-apt.pkg.dev/projects/hastega-global-resources hastega main' | sudo tee -a  /etc/apt/sources.list.d/artifact-registry.list
sudo apt update
sudo apt install git python3-hep'

This command will:

  • Run a debian container.
  • Install the Hephaestus package.
  • Delete the container after exit.

Other OS

If you are using another OS, you can try to install it from source code.

Commands

RUN

Executes a specified plugin.

Syntax

hep run <plugin_name>

INSTALL

Installs a plugin from a Git repository (HTTPS or SSH).

Syntax

hep install <repository_url>

UNINSTALL

Removes a previously installed plugin.

Syntax

hep uninstall <plugin_name>

LIST

Displays a list of all installed plugins.

Syntax

hep list

UPDATE

Checks for available updates for all or a specific plugin.

Syntax

hep update [<plugin_name>]

UPGRADE

Upgrade all plugins or only the specified one.

Syntax

hep upgrade [<plugin_name>]

NEW PLUGIN

Creates a new plugin project in the current directory based on the default plugin template.

Syntax

hep new-plugin <plugin_name>

Roadmap

Version 1.0.0 (Released):

  • Core plugin management functionality (install, uninstall, list, run).
  • Basic update and upgrade capabilities.
  • New plugin creation.

Future Enhancements:

  • Comprehensive documentation and tutorials.
  • Improved error handling and user feedback.
  • Plugin dependency management.

Contributing

We welcome contributions to Hephaestus! If you’re interested in helping out, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Make your changes and commit them with clear messages.
  4. Submit a pull request to the main repository.

License

Distributed under the MIT License. See LICENSE.txt for more information.

Contact

HASTEGA - HASTEGA - [email protected]

David Rainò - CTO - [email protected]

Daniel Angelozzi - MAINTAINER - [email protected]