Skip to content

icos-project/Shell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ICOS Shell

ICOS Shell is a component part of the ICOS Project

  • Shell Backend: server running as component of the ICOS controller
  • Shell Client: CLI tool interfacing the Shell Backend

diagram

Build and run

Shell Backend

Building and running the ICOS Shell Backend with Docker

cd backend
docker build -t "shell-backend" .
docker run --volume ./config.yml:/app/config.yml -p 8080:8080 shell-backend:latest

Shell Client

Building and running the ICOS Shell Client with go

cd client
go build -o icos-shell
./icos-shell -h

Development

OpenAPI

When updating OpenAPI, modify the openapi.yaml file from the root directory and regenerate both Shell Backend and Client with:

Shell Backend

openapi-generator-cli generate -g go-server -i openapi.yaml -o backend/ --additional-properties=packageName=shellbackend

Shell Client

openapi-generator-cli generate -g go -i openapi.yaml -o client/pkg/openapi --additional-properties=packageName=openapi,isGoSubmodule=true

rm client/pkg/openapi/go.mod client/pkg/openapi/go.sum

CLI

Add commands to the Shell Client with cobra-cli, more info here.

Documentation

Current version of docs can be found in:

Generate docs

Generate documentation OpenAPI docs for Shell Backend and CLI docs for Shell Client with:

Shell Backend

openapi-generator-cli generate -g markdown -i openapi.yaml -o backend/docs/

Shell Client

cd client/
go run main.go create docs --path docs

Legal

The lighthouse registration service is released under the Apache license 2.0. Copyright © 2022-2024 Marc Michalke & Francisco Carpio, Technische Universität Braunschweig. All rights reserved.

🇪🇺 This work has received funding from the European Union's HORIZON research and innovation programme under grant agreement No. 101070177.