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(extensions): add execute command #225

Merged
merged 4 commits into from
Jun 13, 2024

Conversation

kjuulh
Copy link
Contributor

@kjuulh kjuulh commented Jan 25, 2024

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

Builds on: #224

@github-actions github-actions bot added the minor label Jan 25, 2024
@kjuulh kjuulh force-pushed the feat/extensions-download-extension branch from f6eb664 to a6dc551 Compare January 26, 2024 09:17
@kjuulh kjuulh force-pushed the feat/add-execute-command branch from befe228 to 3eeb1e5 Compare January 26, 2024 09:17
@kjuulh kjuulh self-assigned this Jun 7, 2024
@kjuulh kjuulh marked this pull request as ready for review June 7, 2024 11:48
@kjuulh kjuulh requested a review from a team as a code owner June 7, 2024 11:48
cmd/ext.go Outdated Show resolved Hide resolved
@kjuulh kjuulh force-pushed the feat/extensions-download-extension branch from a6dc551 to 9c619db Compare June 13, 2024 10:37
kjuulh added 2 commits June 13, 2024 12:47
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]>
Signed-off-by: Kasper J. Hermansen <[email protected]>
@kjuulh kjuulh force-pushed the feat/add-execute-command branch from 3eeb1e5 to c8cc5ab Compare June 13, 2024 10:47
kjuulh and others added 2 commits June 13, 2024 12:48
Signed-off-by: Kasper J. Hermansen <[email protected]>
* 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]>
@kjuulh kjuulh merged commit 42ee36f into feat/extensions-download-extension Jun 13, 2024
2 checks passed
@kjuulh kjuulh deleted the feat/add-execute-command branch June 13, 2024 12:54
kjuulh added a commit that referenced this pull request Jun 13, 2024
* 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]>
kjuulh added a commit that referenced this pull request Jun 13, 2024
* "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]>
kjuulh added a commit that referenced this pull request Jun 13, 2024
* 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]>
kjuulh added a commit that referenced this pull request Jun 13, 2024
* 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