Skip to main content

goatshell - goat shell interface to common cloud providers.

Project description

image

GOATSHELL

7 Clouds & 1 Shell

Installation

Manual Installation

  1. Create a virtual environment. We will call it prod:
    python3 -m venv ~/prod
    
  2. Activate virtual environment:
    cd ~/prod && source bin/activate
    
  3. Clone the repo:
    git clone git@github.com:stacksc/goat.git
    
  4. Install all required packages with 1 script from the main repository:
    cd ~/prod/goat && ./bulk.sh --action rebuild --target all
    

PIP installation (stable)

  1. Install the following packages from pypi:
    pip install goatshell goaat --force-reinstall
    
  2. Type the following command to launch goatshell:
    goatshell
    
┌───────────────────────────────────────────────────────────────────────────────────────────────────────| GOAT INTERFACE |───────────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                                                                                     Purpose: Cloud Wrapper                                                                                                     │
│                                                                                             TIP: resource completion coming soon!                                                                                              │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
┌──────────────────| Hotkeys |───────────────────┐┌──────────────────| Commands |──────────────────┐
│[F8]  Toggle Provider                           ││e|exit    : exit shell                          │
│[F9]  Toggle Profile                            ││c|clear   : clear screen                        │
│[F10] Toggle VIM                                ││h|help    : display usage                       │
│[F12] Toggle Safety Mode                        ││history   : shell history                       │
│[TAB] Fuzzy Complete                            ││cloud     : cloud details                       │
└────────────────────────────────────────────────┘└────────────────────────────────────────────────┘
[oci:DEFAULT]>

(back to top)

Contacts

Christopher Stacks - centerupt@gmail.com

Mechanics

The project is built with dependecies such as aws2, oci-cli, az-cli.
However, other cloud providers are configured to work but NOT packaged with the project such as ibmcloud, gcloud, and Alibaba cloud.

Each time the first token is passed (i.e. cloud provider) a function will verify if the command is avialable.
This keeps the command line clean with the cloud providers you only work with.

The following cloud providers are currently supported:
image
The latest goat-shell version holds all JSON data per cloud, correctly nested based on the cloud provider.

Toolbar

The toolbar will refresh after hitting the ENTER key or with specific hotkeys.

The toolbar is updated appropriately based on what command you ran. Once you run a command, the toolbar is refreshed with your current cloud.

The profile is updated dynamically based on your current cloud and you have the ability to toggle profiles for any cloud.

goat>
Current Cloud: AWS  F8 Usage F10 Toggle Profile: CENTERUPT F12 Quit

Toggle

The only toggle currently supported is profile switching. Everything else is dynamic based on first token.

Cloud CLI Options

# Name Status Additional Info
1 OCI-CLI Default / Supported
2 AWS Default / Supported
3 AZ Default / Supported
4 GCLOUD Supported / Manual Installation Installation Guide
5 ALIYUN Supported / Manual Installation Installation Guide
6 IBMCLOUD Supported / Manual Installation Installation Guide
7 OVHCLOUD & AI Supported / Manual Installation Installation Guide

Once the relative CLI is installed, the goatshell application will recognize that it is available & syntax completion will be provided.
The project is packaged with cloud provider JSON files which get refreshed automatically per major release with dynamic CLI scrapers.

As the first token is passed (i.e. cloud provider) it directs the goatshell application to the correct JSON file.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

goatshell-2024.1.20.301.tar.gz (3.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

goatshell-2024.1.20.301-py3-none-any.whl (3.5 MB view details)

Uploaded Python 3

File details

Details for the file goatshell-2024.1.20.301.tar.gz.

File metadata

  • Download URL: goatshell-2024.1.20.301.tar.gz
  • Upload date:
  • Size: 3.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for goatshell-2024.1.20.301.tar.gz
Algorithm Hash digest
SHA256 af1043dc1e4f9a67dbe715523f85988c94c5060d261847aa9483d6be5c233cf9
MD5 3e0f9a04c5f50bdd9ad4fad0416d8505
BLAKE2b-256 e13e079aa87efe5457bc0e16d2f867e103c4da2cc0de94c1b01eff0ac077865e

See more details on using hashes here.

File details

Details for the file goatshell-2024.1.20.301-py3-none-any.whl.

File metadata

File hashes

Hashes for goatshell-2024.1.20.301-py3-none-any.whl
Algorithm Hash digest
SHA256 832b7757de433e9ae3c9dc77a221dd6913ec72d97cba7cad21e94d5aa861dc46
MD5 4eed49f97cc203d61b3cd6a48b57eaf4
BLAKE2b-256 93b4532ed72d6cdcdb78c4a9df526877f11dddc943ca6116aa716428fcc25b99

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page