godyl

command module
v0.0.12-beta Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 22, 2025 License: MIT Imports: 4 Imported by: 0

README

golangci-lint logo

godyl

Asset downloader


Go Reference Go Report Card Build Status

godyl helps with batch-downloading and installing statically compiled binaries from:

  • GitHub releases
  • GitLab releases
  • URLs
  • Go projects

As an alternative to above, custom commands can be used as well.

godyl will infer the platform and architecture from the system it is running on, and will attempt to download the appropriate binary.

This uses simple heuristics to select the correct binary to download, and will not work for all projects.

However, most properties can be overridden, with hints and skip used to help godyl make the correct decision.

[!NOTE] Set up a GitHub API token to avoid rate limiting when using github as a source type. See configuration for more information, or simply export GODYL_GITHUB_TOKEN=<token>

Tool is inspired by task, dra and ansible

For full documentation, see godyl documentation

For a quick installation, you can use the provided installation script:

curl -sSL https://raw.githubusercontent.com/idelchi/godyl/refs/heads/dev/install.sh | sh -s -- -d ~/.local/bin

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
app
Package app provides the entrypoint for the application.
Package app provides the entrypoint for the application.
cache
Package cache returns a default cache manager with the `File` backend.
Package cache returns a default cache manager with the `File` backend.
cli
Package cli implements the command structure and execution for the tool.
Package cli implements the command structure and execution for the tool.
cli/download
Package download implements the download command for godyl.
Package download implements the download command for godyl.
cli/dump
Package dump provides command implementations for displaying various configuration and system information.
Package dump provides command implementations for displaying various configuration and system information.
cli/dump/configuration
Package configuration implements the config dump subcommand for godyl.
Package configuration implements the config dump subcommand for godyl.
cli/dump/defaults
Package defaults implements the defaults dump subcommand for godyl.
Package defaults implements the defaults dump subcommand for godyl.
cli/dump/env
Package env implements the env dump subcommand for godyl.
Package env implements the env dump subcommand for godyl.
cli/dump/platform
Package platform implements the platform dump subcommand for godyl.
Package platform implements the platform dump subcommand for godyl.
cli/dump/tools
Package tools implements the tools dump subcommand for godyl.
Package tools implements the tools dump subcommand for godyl.
cli/flags
Package flags manages command-line flag binding and configuration for godyl.
Package flags manages command-line flag binding and configuration for godyl.
cli/install
Package install implements the install command for godyl.
Package install implements the install command for godyl.
cli/update
Package update implements the update command for godyl.
Package update implements the update command for godyl.
cli/version
Package version provides the subcommand for printing the tool version.
Package version provides the subcommand for printing the tool version.
config
Package config provides configuration structures and validation for the godyl application.
Package config provides configuration structures and validation for the godyl application.
defaults
Package defaults provides functionality for managing default values and configurations.
Package defaults provides functionality for managing default values and configurations.
detect
Package detect provides functionality for detecting and managing platform-specific information, including the operating system, architecture, system library, file extension, and distribution.
Package detect provides functionality for detecting and managing platform-specific information, including the operating system, architecture, system library, file extension, and distribution.
detect/platform
Package platform provides types and utilities for representing and working with different system platforms, including architectures, operating systems, libraries, and distributions.
Package platform provides types and utilities for representing and working with different system platforms, including architectures, operating systems, libraries, and distributions.
github
Package github provides functionality to interact with GitHub repositories, releases, and assets via the GitHub API.
Package github provides functionality to interact with GitHub repositories, releases, and assets via the GitHub API.
gitlab
Package gitlab provides functionality to interact with GitLab repositories, releases, and assets via the GitLab API.
Package gitlab provides functionality to interact with GitLab repositories, releases, and assets via the GitLab API.
goi
Package goi provides functionality for managing and installing Go binaries.
Package goi provides functionality for managing and installing Go binaries.
match
Package match provides functionality to evaluate and match assets against specific platform requirements and name-based hints.
Package match provides functionality to evaluate and match assets against specific platform requirements and name-based hints.
processor
Package processor provides functionality for managing tool installations and updates.
Package processor provides functionality for managing tool installations and updates.
tmp
tools
Package tools provides structures and methods for managing tool configurations, including downloading, validating, and executing tools in various environments.
Package tools provides structures and methods for managing tool configurations, including downloading, validating, and executing tools in various environments.
tools/aliases
Package aliases provides functionality for managing tool alias names.
Package aliases provides functionality for managing tool alias names.
tools/command
Package command provides utilities to manage and execute shell commands.
Package command provides utilities to manage and execute shell commands.
tools/exe
Package exe provides functionality for configuring tool executables.
Package exe provides functionality for configuring tool executables.
tools/extensions
Package extensions provides functionality for managing tool file extensions.
Package extensions provides functionality for managing tool file extensions.
tools/fallbacks
Package fallbacks provides functionality for managing tool fallback sources.
Package fallbacks provides functionality for managing tool fallback sources.
tools/mode
Package mode provides functionality for specifying tool operational modes.
Package mode provides functionality for specifying tool operational modes.
tools/result
Package result provides a Result struct to represent the outcome of a tool installation operation.
Package result provides a Result struct to represent the outcome of a tool installation operation.
tools/skip
Package skip provides functionality for managing tool skip conditions.
Package skip provides functionality for managing tool skip conditions.
tools/sources
Package sources provides abstractions for handling various types of installation sources, including GitHub repositories, direct URLs, Go projects, and command-based sources.
Package sources provides abstractions for handling various types of installation sources, including GitHub repositories, direct URLs, Go projects, and command-based sources.
tools/sources/common
Package common provides shared utilities and types used across various modules, including functions for handling downloads, metadata management, file operations, and installation processes.
Package common provides shared utilities and types used across various modules, including functions for handling downloads, metadata management, file operations, and installation processes.
tools/sources/github
Package github provides functionality for interacting with GitHub repositories, including fetching release information, matching assets to specific requirements, and downloading files from repository releases.
Package github provides functionality for interacting with GitHub repositories, including fetching release information, matching assets to specific requirements, and downloading files from repository releases.
tools/sources/gitlab
Package gitlab provides functionality for interacting with GitLab repositories, including fetching release information, matching assets to specific requirements, and downloading files from repository releases.
Package gitlab provides functionality for interacting with GitLab repositories, including fetching release information, matching assets to specific requirements, and downloading files from repository releases.
tools/sources/go
Package goc provides functionality for handling Go-based installations and managing Go commands using GitHub repositories.
Package goc provides functionality for handling Go-based installations and managing Go commands using GitHub repositories.
tools/sources/url
Package url provides functionality to handle URLs as sources for downloading and managing files.
Package url provides functionality to handle URLs as sources for downloading and managing files.
tools/strategy
Package strategy provides functionality for managing tool installation strategies.
Package strategy provides functionality for managing tool installation strategies.
tools/tags
Package tags provides functionality for managing tool tags and filtering.
Package tags provides functionality for managing tool tags and filtering.
tools/tool
Package tool provides core functionality for managing tool configurations.
Package tool provides core functionality for managing tool configurations.
tools/values
Package values provides functionality for managing tool configuration values.
Package values provides functionality for managing tool configuration values.
tools/version
Package version provides functionality for managing tool version information.
Package version provides functionality for managing tool version information.
updater
Package updater provides functionality for updating tools and managing update strategies.
Package updater provides functionality for updating tools and managing update strategies.
pkg
cobraext
Package cobraext provides extensions and utilities for the Cobra CLI framework.
Package cobraext provides extensions and utilities for the Cobra CLI framework.
download
Package download provides file‑download utilities with timeout, retry, and optional SSL‑verification control.
Package download provides file‑download utilities with timeout, retry, and optional SSL‑verification control.
env
Package env provides utilities for managing environment variables in Go.
Package env provides utilities for managing environment variables in Go.
executable
Package executable provides utilities for working with executable files and their versions.
Package executable provides utilities for working with executable files and their versions.
logger
Package logger provides a simple logging framework that supports different log levels (DEBUG, INFO, WARN, ERROR, ALWAYS, SILENT) and color-coded output.
Package logger provides a simple logging framework that supports different log levels (DEBUG, INFO, WARN, ERROR, ALWAYS, SILENT) and color-coded output.
path/file
Package file provides utilities for handling folder and file operations.
Package file provides utilities for handling folder and file operations.
path/files
Package files provides utilities for managing collections of files.
Package files provides utilities for managing collections of files.
path/folder
Package folder provides utilities for directory operations.
Package folder provides utilities for directory operations.
pretty
Package pretty contains functions for prettifying and visualizing data in JSON YAML, and ENV formats.
Package pretty contains functions for prettifying and visualizing data in JSON YAML, and ENV formats.
unmarshal
Package unmarshal provides utilities for unmarshalling YAML data that can represent either a single item or a slice of items.
Package unmarshal provides utilities for unmarshalling YAML data that can represent either a single item or a slice of items.
utils
Package utils provides common utility functions for general purpose tasks.
Package utils provides common utility functions for general purpose tasks.
validator
Package validator provides a wrapper around go-playground/validator with built-in translation support for validation error messages.
Package validator provides a wrapper around go-playground/validator with built-in translation support for validation error messages.
version
Package version provides some utilities for working with version strings.
Package version provides some utilities for working with version strings.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL