reginald

command module
v0.0.0-...-c427923 Latest Latest
Warning

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

Go to latest
Published: Jun 11, 2025 License: Apache-2.0 Imports: 11 Imported by: 0

README

Reginald the gopher valet

Reginald

👔 the personal workstation valet

CI

[!NOTE] This project is still in early development. More info on the project will be added later and the current features don’t just yet match this README.

As a developer, I have tried to find a reasonable way to manage my dotfiles and have a workstation set up so that, ideally, I can get a new machine up and running with a single command. However, I’ve found that doing this with existing solutions can become a hassle as the existing tools might require you to install a runtime (for example, Python) or adapt a workflow that seems too complicated for the task at hand. Additionally, Bash scripts can become hard to maintain.

Reginald can help as the workstation valet. You need to write a single config file telling Reginald what to do and it will take care of your setup. It creates symbolic links for your dotfiles from the directory that you choose and installs the packages you need.

Reginald can also learn new tasks. It has a language-agnostic plugin system that you can use to add new subcommands and tasks to Reginald.

Getting Started

As the project is in an early stage, there is no prebuilt binaries or releases available. You can still build and run Reginald on your machine if you have Go and preferably make installed.

After cloning the repository, change to it and run:

make build

This builds Reginald as ./reginald at the root of the repository.

License

Reginald is licensed under the Apache-2.0 license. See the LICENSE file for more information.

Reginald the gopher valet is based on the Go gopher. Reginald the gopher valet is licensed under the Creative Commons Attribution 4.0 International license. The Go gopher is designed by Renee French and licensed under the Creative Commons 3.0 Attributions license. The vector data used for the Go gopher is by Takuya Ueda and licensed under the Creative Commons 3.0 Attributions license.

Documentation

Overview

Package main is the entry point for Reginald, the personal workstation valet. TODO: Add a comment describing the actual command when there is something to describe.

Directories

Path Synopsis
Package main defines an example plugin for Reginald using the provided Go functions and types.
Package main defines an example plugin for Reginald using the provided Go functions and types.
internal
cli
Package cli defines the command-line interface of Reginald.
Package cli defines the command-line interface of Reginald.
config
Package config contains the program configuration.
Package config contains the program configuration.
flags
Package flags contains the command-line flag types of Reginald.
Package flags contains the command-line flag types of Reginald.
fspath
Package fspath implements utility routines for manipulating filename paths in a way compatible with the target operating system-defined file paths through the Path type.
Package fspath implements utility routines for manipulating filename paths in a way compatible with the target operating system-defined file paths through the Path type.
iostreams
Package iostreams defines the IO stream utilities for the Reginald terminal user interface.
Package iostreams defines the IO stream utilities for the Reginald terminal user interface.
logging
Package logging defines utilities for logging within Reginald.
Package logging defines utilities for logging within Reginald.
panichandler
Package panichandler defines the panic handler functions for Reginald.
Package panichandler defines the panic handler functions for Reginald.
plugins
Package plugins implements an RPP client in Reginald to run plugins.
Package plugins implements an RPP client in Reginald to run plugins.
taskcfg
Package taskcfg provides the configuration types for the tasks.
Package taskcfg provides the configuration types for the tasks.
tasks
Package tasks contains the built-in tasks of Reginald the internal task-related utilities for running tasks and validating the task configs.
Package tasks contains the built-in tasks of Reginald the internal task-related utilities for running tasks and validating the task configs.
pkg
logs
Package logs defines the public types used in Reginald in logging.
Package logs defines the public types used in Reginald in logging.
rpp
Package rpp defines helpers for using the RPPv0 (Reginald plugin protocol version 0) in Go programs.
Package rpp defines helpers for using the RPPv0 (Reginald plugin protocol version 0) in Go programs.
rpp/plugin
Package plugin implements an RPP server for use in Reginald plugins that are written in Go.
Package plugin implements an RPP server for use in Reginald plugins that are written in Go.
version
Package version provides version information of the current binary.
Package version provides version information of the current binary.

Jump to

Keyboard shortcuts

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