Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add shuttle extensions cli commands #220

Open
wants to merge 4 commits into
base: feat/shuttle-extensions
Choose a base branch
from

Conversation

kjuulh
Copy link
Contributor

@kjuulh kjuulh commented Jan 25, 2024

This adds a basic command palette for shuttle such as:

  • shuttle ext update
  • shuttle ext init
  • shuttle ext install

This also right now uses a skeleton implementation of a central ExtensionManager which is supposed to orchestrate these extensions. The call to the extensions will be done in a later PR

Builds on: #219

Signed-off-by: Kasper J. Hermansen <[email protected]>
Signed-off-by: Kasper J. Hermansen <[email protected]>
@kjuulh kjuulh force-pushed the feat/shuttle-extensions branch from ce7fa93 to 4822d72 Compare January 26, 2024 09:17
@kjuulh kjuulh force-pushed the feat/with-extensions-implmentation branch from 353eec9 to c75a15a Compare January 26, 2024 09:17
@kjuulh kjuulh marked this pull request as ready for review June 3, 2024 10:20
@kjuulh kjuulh requested a review from a team as a code owner June 3, 2024 10:20
@kjuulh
Copy link
Contributor Author

kjuulh commented Jun 3, 2024

@lunarway/squad-aura I really like to get this merged before hackathon.

I am opening up the PRs now (stacked), They all live pretty much in the same package, so it'd be easy to squash them down before merging to main, if we want to move this to a separate tool in the future.

@kjuulh kjuulh self-assigned this Jun 7, 2024
cmd/ext.go Outdated Show resolved Hide resolved
cmd/ext.go Outdated Show resolved Hide resolved
kjuulh and others added 2 commits June 13, 2024 11:56
Signed-off-by: Kasper J. Hermansen <[email protected]>
* feat: add registry and global storage

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: remove bullet

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: remember to initiate install

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: make sure to check permissions

Signed-off-by: Kasper J. Hermansen <[email protected]>

* chore: make registry private

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat(extensions): with git operations (#222)

* feat(extensions): with git operations

Quite simply implements fetch and clone to make sure we can pull a registry

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: add git registry

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat(extensions): add install extensions from registry (#223)

* "feat(extensions): add install extensions from registry

This pr includes everything up to actually downloading the extension from the upstream registry

Such as pulling an example registry entry

```json
{
  "name": "SuperExtender",
  "description": "Enhances your experience with superpowers.",
  "version": "1.0.3",
  "downloadUrls": [
    {
      "architecture": "amd64",
      "os": "linux",
      "url": "https://example.com/linux/amd64/superextender.tar.gz",
      "checksum": "efgh5678"
    },
    {
      "architecture": "x86",
      "os": "windows",
      "url": "https://example.com/windows/x86/superextender.zip",
      "checksum": "ijkl91011"
    },
    {
      "architecture": "arm64",
      "os": "darwin",
      "url": "https://example.com/windows/x86/superextender.zip",
      "checksum": "ijkl91011"
    }
  ]
}
```

Which will match on the current os using $GOOS and $GOARCH set by golang itself. We may however have to depend on some other variables if go is not installed by I believe it should work anyway"

* feat: print error

Signed-off-by: Kasper J. Hermansen <[email protected]>

* fix: review comments, wording etc.

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat(extensions): add github release downloader (#224)

* feat(extensions): add github release downloader

This specifically adds a downloader for github releases it uses either the

SHUTTLE_EXTENSIONS_GITHUB_ACCESS_TOKEN or GITHUB_ACCESS_TOKEN for access to the releases

The downloader expects a full url from the registry as seen in a previous pr

Signed-off-by: Kasper J. Hermansen <[email protected]>

* chore: reword bearer

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat(extensions): add execute command (#225)

* feat(extensions): add execute command

this adds Extensions to the global cmd.go resulting in another section showing up when doing a shuttle --help

To execute an extension simply shuttle myExtension where myExtension is the name of the downloaded extension. All args are passed to the child as well

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: remember to add error

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: without empty line

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: adds github remote registry index (#226)

* feat: with github registry

Signed-off-by: Kasper J. Hermansen <[email protected]>

* fix: shuttle extensions

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: can download private files

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: remove fluff

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: fix review comments

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: it needs to implement the functions

Signed-off-by: Kasper J. Hermansen <[email protected]>

---------

Signed-off-by: Kasper J. Hermansen <[email protected]>

---------

Signed-off-by: Kasper J. Hermansen <[email protected]>

---------

Signed-off-by: Kasper J. Hermansen <[email protected]>

---------

Signed-off-by: Kasper J. Hermansen <[email protected]>

---------

Signed-off-by: Kasper J. Hermansen <[email protected]>

---------

Signed-off-by: Kasper J. Hermansen <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants