Compare commits
14 Commits
3eced64453
...
v0.11.0
| Author | SHA1 | Date | |
|---|---|---|---|
| fd019bc407 | |||
| febc2680f4 | |||
| caf2397349 | |||
| 172ca8712e | |||
| bda16bcbb5 | |||
| b5d069112f | |||
| f56393c84c | |||
| 55ef8e1733 | |||
| 075fc16ec9 | |||
| 0d6a13c1cf | |||
| e57939f858 | |||
| d45b1562fc | |||
| 7fe07f86a9 | |||
| 14c81a00a7 |
0
.changes/0.2.4.md
Normal file → Executable file
0
.changes/0.2.4.md
Normal file → Executable file
0
.changes/header.tpl.md
Normal file → Executable file
0
.changes/header.tpl.md
Normal file → Executable file
0
.changes/unreleased/.gitkeep
Normal file → Executable file
0
.changes/unreleased/.gitkeep
Normal file → Executable file
@@ -1,3 +0,0 @@
|
|||||||
kind: Added
|
|
||||||
body: 'feat: Package operation `versionCheck` supports regular expressions (see [regexp](https://pkg.go.dev/regexp) package for docs)'
|
|
||||||
time: 2025-04-09T17:45:28.836497149-05:00
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
kind: Added
|
|
||||||
body: 'Command lists: added `cmdLists.[name].notify` object'
|
|
||||||
time: 2025-05-01T11:07:45.96164753-05:00
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
kind: Added
|
|
||||||
body: Testing setup with Docker
|
|
||||||
time: 2025-07-04T08:59:17.430373451-05:00
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
kind: Added
|
|
||||||
body: 'CLI: add global flag --hostsConfig that allows hosts to be dynamic in relation to the main config'
|
|
||||||
time: 2025-07-04T10:21:26.864635558-05:00
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
kind: Added
|
|
||||||
body: 'CLI: Exec subcommand `hosts`. See documentation for more details.'
|
|
||||||
time: 2025-07-15T20:23:03.647128713-05:00
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
kind: Changed
|
|
||||||
body: 'Commands: `host` can now be `localhost` or `127.0.0.1` to run commands locally'
|
|
||||||
time: 2025-03-21T09:08:49.871021144-05:00
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
kind: Changed
|
|
||||||
body: lists loaded from external files only if no list config present in current file
|
|
||||||
time: 2025-03-25T00:33:57.039431409-05:00
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
kind: Changed
|
|
||||||
body: "`PackageManager.Parse` renamed to `ParseRemotePackageManagerVersionOutput`. This now returns arrays of PackageManagerCommon.Package and errors."
|
|
||||||
time: 2025-04-07T22:30:20.342177323-05:00
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
kind: Changed
|
|
||||||
body: 'Internal: refactoring and renaming functions'
|
|
||||||
time: 2025-04-18T13:34:40.842541658-05:00
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
kind: Changed
|
|
||||||
body: 'Commands: moved output-prefixed keys to the `commands.[name].output` object'
|
|
||||||
time: 2025-05-01T11:05:34.90130087-05:00
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
kind: Changed
|
|
||||||
body: Change internal method name for better understanding
|
|
||||||
time: 2025-06-09T07:26:01.819927627-05:00
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
kind: Changed
|
|
||||||
body: Improved error message for remote version package output
|
|
||||||
time: 2025-07-09T23:19:19.431960446-05:00
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
kind: Fixed
|
|
||||||
body: 'Command Lists: hooks now run correctly when commands finish'
|
|
||||||
time: 2025-04-18T09:57:47.39035092-05:00
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
kind: Fixed
|
|
||||||
body: Log file passed using `--log-file` correctly used
|
|
||||||
time: 2025-04-24T22:57:11.592829277-05:00
|
|
||||||
0
.changes/v0.10.0.md
Normal file → Executable file
0
.changes/v0.10.0.md
Normal file → Executable file
0
.changes/v0.10.1.md
Normal file → Executable file
0
.changes/v0.10.1.md
Normal file → Executable file
0
.changes/v0.10.2.md
Normal file → Executable file
0
.changes/v0.10.2.md
Normal file → Executable file
21
.changes/v0.11.0.md
Normal file
21
.changes/v0.11.0.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
## v0.11.0 - 2025-11-24
|
||||||
|
### Added
|
||||||
|
* feat: Package operation `versionCheck` supports regular expressions (see [regexp](https://pkg.go.dev/regexp) package for docs)
|
||||||
|
* Command lists: added `cmdLists.[name].notify` object
|
||||||
|
* Testing setup with Docker
|
||||||
|
* CLI: add global flag --hostsConfig that allows hosts to be dynamic in relation to the main config
|
||||||
|
* CLI: Exec subcommand `hosts`. See documentation for more details.
|
||||||
|
* CLI: added `exec hosts` subcommand `list`
|
||||||
|
* Add support for hosts in parallel
|
||||||
|
### Changed
|
||||||
|
* Commands: `host` can now be `localhost` or `127.0.0.1` to run commands locally
|
||||||
|
* lists loaded from external files only if no list config present in current file
|
||||||
|
* `PackageManager.Parse` renamed to `ParseRemotePackageManagerVersionOutput`. This now returns arrays of PackageManagerCommon.Package and errors.
|
||||||
|
* Internal: refactoring and renaming functions
|
||||||
|
* Commands: moved output-prefixed keys to the `commands.[name].output` object
|
||||||
|
* Change internal method name for better understanding
|
||||||
|
* Improved error message for remote version package output
|
||||||
|
### Fixed
|
||||||
|
* Command Lists: hooks now run correctly when commands finish
|
||||||
|
* Log file passed using `--log-file` correctly used
|
||||||
|
* Cmd Type `script` now correctly appends arguments
|
||||||
0
.changes/v0.3.0.md
Normal file → Executable file
0
.changes/v0.3.0.md
Normal file → Executable file
0
.changes/v0.3.1.md
Normal file → Executable file
0
.changes/v0.3.1.md
Normal file → Executable file
0
.changes/v0.4.0.md
Normal file → Executable file
0
.changes/v0.4.0.md
Normal file → Executable file
0
.changes/v0.5.0.md
Normal file → Executable file
0
.changes/v0.5.0.md
Normal file → Executable file
0
.changes/v0.6.0.md
Normal file → Executable file
0
.changes/v0.6.0.md
Normal file → Executable file
0
.changes/v0.6.1.md
Normal file → Executable file
0
.changes/v0.6.1.md
Normal file → Executable file
0
.changes/v0.7.0.md
Normal file → Executable file
0
.changes/v0.7.0.md
Normal file → Executable file
0
.changes/v0.7.1.md
Normal file → Executable file
0
.changes/v0.7.1.md
Normal file → Executable file
0
.changes/v0.7.2.md
Normal file → Executable file
0
.changes/v0.7.2.md
Normal file → Executable file
0
.changes/v0.7.3.md
Normal file → Executable file
0
.changes/v0.7.3.md
Normal file → Executable file
0
.changes/v0.7.4.md
Normal file → Executable file
0
.changes/v0.7.4.md
Normal file → Executable file
0
.changes/v0.7.5.md
Normal file → Executable file
0
.changes/v0.7.5.md
Normal file → Executable file
0
.changes/v0.7.6.md
Normal file → Executable file
0
.changes/v0.7.6.md
Normal file → Executable file
0
.changes/v0.7.7.md
Normal file → Executable file
0
.changes/v0.7.7.md
Normal file → Executable file
0
.changes/v0.7.8.md
Normal file → Executable file
0
.changes/v0.7.8.md
Normal file → Executable file
0
.changes/v0.8.0.md
Normal file → Executable file
0
.changes/v0.8.0.md
Normal file → Executable file
0
.changes/v0.9.0.md
Normal file → Executable file
0
.changes/v0.9.0.md
Normal file → Executable file
0
.changes/v0.9.1.md
Normal file → Executable file
0
.changes/v0.9.1.md
Normal file → Executable file
0
.changie.yaml
Normal file → Executable file
0
.changie.yaml
Normal file → Executable file
0
.frontmatter/database/mediaDb.json
Normal file → Executable file
0
.frontmatter/database/mediaDb.json
Normal file → Executable file
0
.frontmatter/database/taxonomyDb.json
Normal file → Executable file
0
.frontmatter/database/taxonomyDb.json
Normal file → Executable file
0
.github/workflows/release.yml
vendored
Normal file → Executable file
0
.github/workflows/release.yml
vendored
Normal file → Executable file
0
.gitignore
vendored
Normal file → Executable file
0
.gitignore
vendored
Normal file → Executable file
0
.gitmodules
vendored
Normal file → Executable file
0
.gitmodules
vendored
Normal file → Executable file
0
.goreleaser/gitea.yml
Normal file → Executable file
0
.goreleaser/gitea.yml
Normal file → Executable file
0
.goreleaser/github.yml
Normal file → Executable file
0
.goreleaser/github.yml
Normal file → Executable file
0
.goreleaser/vern.yml
Normal file → Executable file
0
.goreleaser/vern.yml
Normal file → Executable file
0
.vscode/settings.json
vendored
Normal file → Executable file
0
.vscode/settings.json
vendored
Normal file → Executable file
0
.woodpecker/gitea.yml
Normal file → Executable file
0
.woodpecker/gitea.yml
Normal file → Executable file
0
.woodpecker/go-lint.yml
Normal file → Executable file
0
.woodpecker/go-lint.yml
Normal file → Executable file
4
.woodpecker/publish-docs.yml
Normal file → Executable file
4
.woodpecker/publish-docs.yml
Normal file → Executable file
@@ -1,11 +1,11 @@
|
|||||||
steps:
|
steps:
|
||||||
build:
|
build:
|
||||||
image: hugomods/hugo:ci
|
image: hugomods/hugo:debian-ci-0.147.2
|
||||||
commands:
|
commands:
|
||||||
- git submodule foreach 'git fetch origin; git checkout $(git describe --tags `git rev-list --tags --max-count=1`);'
|
- git submodule foreach 'git fetch origin; git checkout $(git describe --tags `git rev-list --tags --max-count=1`);'
|
||||||
- cd docs
|
- cd docs
|
||||||
- hugo mod get -u github.com/divinerites/plausible-hugo
|
- hugo mod get -u github.com/divinerites/plausible-hugo
|
||||||
- hugo mod get -u github.com/McShelby/hugo-theme-relearn@7.3.1
|
- hugo mod get -u github.com/McShelby/hugo-theme-relearn@8.2.0
|
||||||
- hugo
|
- hugo
|
||||||
|
|
||||||
deploy:
|
deploy:
|
||||||
|
|||||||
22
CHANGELOG.md
Normal file → Executable file
22
CHANGELOG.md
Normal file → Executable file
@@ -6,6 +6,28 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
|
|||||||
and is generated by [Changie](https://github.com/miniscruff/changie).
|
and is generated by [Changie](https://github.com/miniscruff/changie).
|
||||||
|
|
||||||
|
|
||||||
|
## v0.11.0 - 2025-11-24
|
||||||
|
### Added
|
||||||
|
* feat: Package operation `versionCheck` supports regular expressions (see [regexp](https://pkg.go.dev/regexp) package for docs)
|
||||||
|
* Command lists: added `cmdLists.[name].notify` object
|
||||||
|
* Testing setup with Docker
|
||||||
|
* CLI: add global flag --hostsConfig that allows hosts to be dynamic in relation to the main config
|
||||||
|
* CLI: Exec subcommand `hosts`. See documentation for more details.
|
||||||
|
* CLI: added `exec hosts` subcommand `list`
|
||||||
|
* Add support for hosts in parallel
|
||||||
|
### Changed
|
||||||
|
* Commands: `host` can now be `localhost` or `127.0.0.1` to run commands locally
|
||||||
|
* lists loaded from external files only if no list config present in current file
|
||||||
|
* `PackageManager.Parse` renamed to `ParseRemotePackageManagerVersionOutput`. This now returns arrays of PackageManagerCommon.Package and errors.
|
||||||
|
* Internal: refactoring and renaming functions
|
||||||
|
* Commands: moved output-prefixed keys to the `commands.[name].output` object
|
||||||
|
* Change internal method name for better understanding
|
||||||
|
* Improved error message for remote version package output
|
||||||
|
### Fixed
|
||||||
|
* Command Lists: hooks now run correctly when commands finish
|
||||||
|
* Log file passed using `--log-file` correctly used
|
||||||
|
* Cmd Type `script` now correctly appends arguments
|
||||||
|
|
||||||
## v0.10.2 - 2025-03-19
|
## v0.10.2 - 2025-03-19
|
||||||
### Added
|
### Added
|
||||||
* Notifications: http service added
|
* Notifications: http service added
|
||||||
|
|||||||
0
backy.code-workspace
Normal file → Executable file
0
backy.code-workspace
Normal file → Executable file
0
cmd/.gitignore
vendored
Normal file → Executable file
0
cmd/.gitignore
vendored
Normal file → Executable file
0
cmd/backup.go
Normal file → Executable file
0
cmd/backup.go
Normal file → Executable file
0
cmd/backup_test.go
Normal file → Executable file
0
cmd/backup_test.go
Normal file → Executable file
0
cmd/config.go
Normal file → Executable file
0
cmd/config.go
Normal file → Executable file
0
cmd/cron.go
Normal file → Executable file
0
cmd/cron.go
Normal file → Executable file
0
cmd/exec.go
Normal file → Executable file
0
cmd/exec.go
Normal file → Executable file
0
cmd/host.go
Normal file → Executable file
0
cmd/host.go
Normal file → Executable file
44
cmd/hosts.go
Normal file → Executable file
44
cmd/hosts.go
Normal file → Executable file
@@ -1,25 +1,36 @@
|
|||||||
package cmd
|
package cmd
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"maps"
|
||||||
|
"slices"
|
||||||
|
|
||||||
"git.andrewnw.xyz/CyberShell/backy/pkg/backy"
|
"git.andrewnw.xyz/CyberShell/backy/pkg/backy"
|
||||||
"git.andrewnw.xyz/CyberShell/backy/pkg/logging"
|
"git.andrewnw.xyz/CyberShell/backy/pkg/logging"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
runCommandsInParallel bool
|
||||||
|
|
||||||
hostsExecCommand = &cobra.Command{
|
hostsExecCommand = &cobra.Command{
|
||||||
Use: "hosts [--command=command1 --command=command2 ... | -c command1 -c command2 ...]",
|
Use: "hosts [--command=command1 --command=command2 ... | -c command1 -c command2 ...]",
|
||||||
Short: "Runs command defined in config file on the hosts in order specified.",
|
Short: "Runs command defined in config file on the hosts in order specified.",
|
||||||
Long: "Hosts executes specified commands on all the hosts defined in config file.\nUse the --commands or -c flag to choose the commands.",
|
Long: "Hosts executes specified commands on all the hosts defined in config file.\nUse the --commands or -c flag to choose the commands.",
|
||||||
Run: Hosts,
|
Run: Hosts,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hostsListExecCommand = &cobra.Command{
|
||||||
|
Use: "list list1 list2 ...",
|
||||||
|
Short: "Runs lists in order specified defined in config file on all hosts.",
|
||||||
|
Long: "Lists executes specified lists on all the hosts defined in hosts config.\nPass the names of lists as arguments after command.",
|
||||||
|
Run: HostsList,
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
hostsExecCommand.AddCommand(hostsListExecCommand)
|
||||||
hostsExecCommand.Flags().StringArrayVarP(&cmdList, "command", "c", nil, "Accepts space-separated names of commands. Specify multiple times for multiple commands.")
|
hostsListExecCommand.Flags().BoolVarP(&runCommandsInParallel, "parallel", "p", false, "Run commands in parallel on hosts")
|
||||||
parseS3Config()
|
parseS3Config()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// cli input should be hosts and commands. Hosts are defined in config files.
|
// cli input should be hosts and commands. Hosts are defined in config files.
|
||||||
@@ -53,3 +64,30 @@ func Hosts(cmd *cobra.Command, args []string) {
|
|||||||
|
|
||||||
backyConfOpts.ExecCmdsOnHosts(cmdList, hostsList)
|
backyConfOpts.ExecCmdsOnHosts(cmdList, hostsList)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func HostsList(cmd *cobra.Command, args []string) {
|
||||||
|
backyConfOpts := backy.NewConfigOptions(configFile,
|
||||||
|
backy.SetLogFile(logFile),
|
||||||
|
backy.EnableCommandStdOut(cmdStdOut),
|
||||||
|
backy.SetHostsConfigFile(hostsConfigFile))
|
||||||
|
backyConfOpts.InitConfig()
|
||||||
|
|
||||||
|
backyConfOpts.ParseConfigurationFile()
|
||||||
|
|
||||||
|
if len(args) == 0 {
|
||||||
|
logging.ExitWithMSG("error: no lists specified", 1, &backyConfOpts.Logger)
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, l := range args {
|
||||||
|
_, listFound := backyConfOpts.CmdConfigLists[l]
|
||||||
|
if !listFound {
|
||||||
|
logging.ExitWithMSG("list "+l+" not found", 1, &backyConfOpts.Logger)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
maps.DeleteFunc(backyConfOpts.CmdConfigLists, func(k string, v *backy.CmdList) bool {
|
||||||
|
return !slices.Contains(args, k)
|
||||||
|
})
|
||||||
|
|
||||||
|
backyConfOpts.ExecuteListOnHosts(args, runCommandsInParallel)
|
||||||
|
}
|
||||||
|
|||||||
0
cmd/list.go
Normal file → Executable file
0
cmd/list.go
Normal file → Executable file
4
cmd/root.go
Normal file → Executable file
4
cmd/root.go
Normal file → Executable file
@@ -36,13 +36,13 @@ func Execute() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
rootCmd.PersistentFlags().StringVar(&logFile, "log-file", "", "log file to write to")
|
rootCmd.PersistentFlags().StringVar(&logFile, "logFile", "", "log file to write to")
|
||||||
rootCmd.PersistentFlags().BoolVar(&cmdStdOut, "cmdStdOut", false, "Pass to print command output to stdout")
|
rootCmd.PersistentFlags().BoolVar(&cmdStdOut, "cmdStdOut", false, "Pass to print command output to stdout")
|
||||||
|
|
||||||
rootCmd.PersistentFlags().StringVarP(&configFile, "config", "f", "", "config file to read from")
|
rootCmd.PersistentFlags().StringVarP(&configFile, "config", "f", "", "config file to read from")
|
||||||
rootCmd.PersistentFlags().StringVar(&hostsConfigFile, "hostsConfig", "", "yaml hosts file to read from")
|
rootCmd.PersistentFlags().StringVar(&hostsConfigFile, "hostsConfig", "", "yaml hosts file to read from")
|
||||||
rootCmd.PersistentFlags().BoolVarP(&verbose, "verbose", "v", false, "Sets verbose level")
|
rootCmd.PersistentFlags().BoolVarP(&verbose, "verbose", "v", false, "Sets verbose level")
|
||||||
rootCmd.PersistentFlags().StringVar(&s3Endpoint, "s3-endpoint", "", "Sets the S3 endpoint used for config file fetching. Overrides S3_ENDPOINT env variable.")
|
rootCmd.PersistentFlags().StringVar(&s3Endpoint, "s3Endpoint", "", "Sets the S3 endpoint used for config file fetching. Overrides S3_ENDPOINT env variable.")
|
||||||
rootCmd.AddCommand(backupCmd, execCmd, cronCmd, versionCmd, listCmd)
|
rootCmd.AddCommand(backupCmd, execCmd, cronCmd, versionCmd, listCmd)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
2
cmd/version.go
Normal file → Executable file
2
cmd/version.go
Normal file → Executable file
@@ -7,7 +7,7 @@ import (
|
|||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|
||||||
const versionStr = "0.10.2"
|
const versionStr = "0.11.0"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
versionCmd = &cobra.Command{
|
versionCmd = &cobra.Command{
|
||||||
|
|||||||
0
docs/.gitignore
vendored
Normal file → Executable file
0
docs/.gitignore
vendored
Normal file → Executable file
0
docs/.hugo_build.lock
Normal file → Executable file
0
docs/.hugo_build.lock
Normal file → Executable file
0
docs/archetypes/default.md
Normal file → Executable file
0
docs/archetypes/default.md
Normal file → Executable file
1
docs/config.yaml
Normal file → Executable file
1
docs/config.yaml
Normal file → Executable file
@@ -13,6 +13,7 @@ module:
|
|||||||
imports:
|
imports:
|
||||||
- path: github.com/divinerites/plausible-hugo
|
- path: github.com/divinerites/plausible-hugo
|
||||||
- path: github.com/McShelby/hugo-theme-relearn
|
- path: github.com/McShelby/hugo-theme-relearn
|
||||||
|
version: "v8.2.0"
|
||||||
params:
|
params:
|
||||||
themeVariant:
|
themeVariant:
|
||||||
- auto: []
|
- auto: []
|
||||||
|
|||||||
0
docs/content/_index.md
Normal file → Executable file
0
docs/content/_index.md
Normal file → Executable file
@@ -26,8 +26,9 @@ Flags:
|
|||||||
--cmdStdOut Pass to print command output to stdout
|
--cmdStdOut Pass to print command output to stdout
|
||||||
-f, --config string config file to read from
|
-f, --config string config file to read from
|
||||||
-h, --help help for backy
|
-h, --help help for backy
|
||||||
--log-file string log file to write to
|
--hostsConfig string yaml hosts file to read from
|
||||||
--s3-endpoint string Sets the S3 endpoint used for config file fetching. Overrides S3_ENDPOINT env variable.
|
--logFile string log file to write to
|
||||||
|
--s3Endpoint string Sets the S3 endpoint used for config file fetching. Overrides S3_ENDPOINT env variable.
|
||||||
-v, --verbose Sets verbose level
|
-v, --verbose Sets verbose level
|
||||||
|
|
||||||
Use "backy [command] --help" for more information about a command.
|
Use "backy [command] --help" for more information about a command.
|
||||||
@@ -51,8 +52,9 @@ Flags:
|
|||||||
Global Flags:
|
Global Flags:
|
||||||
--cmdStdOut Pass to print command output to stdout
|
--cmdStdOut Pass to print command output to stdout
|
||||||
-f, --config string config file to read from
|
-f, --config string config file to read from
|
||||||
--log-file string log file to write to
|
--hostsConfig string yaml hosts file to read from
|
||||||
--s3-endpoint string Sets the S3 endpoint used for config file fetching. Overrides S3_ENDPOINT env variable.
|
--logFile string log file to write to
|
||||||
|
--s3Endpoint string Sets the S3 endpoint used for config file fetching. Overrides S3_ENDPOINT env variable.
|
||||||
-v, --verbose Sets verbose level
|
-v, --verbose Sets verbose level
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -70,8 +72,9 @@ Flags:
|
|||||||
Global Flags:
|
Global Flags:
|
||||||
--cmdStdOut Pass to print command output to stdout
|
--cmdStdOut Pass to print command output to stdout
|
||||||
-f, --config string config file to read from
|
-f, --config string config file to read from
|
||||||
--log-file string log file to write to
|
--hostsConfig string yaml hosts file to read from
|
||||||
--s3-endpoint string Sets the S3 endpoint used for config file fetching. Overrides S3_ENDPOINT env variable.
|
--logFile string log file to write to
|
||||||
|
--s3Endpoint string Sets the S3 endpoint used for config file fetching. Overrides S3_ENDPOINT env variable.
|
||||||
-v, --verbose Sets verbose level
|
-v, --verbose Sets verbose level
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -86,6 +89,7 @@ Usage:
|
|||||||
|
|
||||||
Available Commands:
|
Available Commands:
|
||||||
host Runs command defined in config file on the hosts in order specified.
|
host Runs command defined in config file on the hosts in order specified.
|
||||||
|
hosts Runs command defined in config file on the hosts in order specified.
|
||||||
|
|
||||||
Flags:
|
Flags:
|
||||||
-h, --help help for exec
|
-h, --help help for exec
|
||||||
@@ -93,8 +97,9 @@ Flags:
|
|||||||
Global Flags:
|
Global Flags:
|
||||||
--cmdStdOut Pass to print command output to stdout
|
--cmdStdOut Pass to print command output to stdout
|
||||||
-f, --config string config file to read from
|
-f, --config string config file to read from
|
||||||
--log-file string log file to write to
|
--hostsConfig string yaml hosts file to read from
|
||||||
--s3-endpoint string Sets the S3 endpoint used for config file fetching. Overrides S3_ENDPOINT env variable.
|
--logFile string log file to write to
|
||||||
|
--s3Endpoint string Sets the S3 endpoint used for config file fetching. Overrides S3_ENDPOINT env variable.
|
||||||
-v, --verbose Sets verbose level
|
-v, --verbose Sets verbose level
|
||||||
|
|
||||||
Use "backy exec [command] --help" for more information about a command.
|
Use "backy exec [command] --help" for more information about a command.
|
||||||
@@ -117,8 +122,9 @@ Flags:
|
|||||||
Global Flags:
|
Global Flags:
|
||||||
--cmdStdOut Pass to print command output to stdout
|
--cmdStdOut Pass to print command output to stdout
|
||||||
-f, --config string config file to read from
|
-f, --config string config file to read from
|
||||||
--log-file string log file to write to
|
--hostsConfig string yaml hosts file to read from
|
||||||
--s3-endpoint string Sets the S3 endpoint used for config file fetching. Overrides S3_ENDPOINT env variable.
|
--logFile string log file to write to
|
||||||
|
--s3Endpoint string Sets the S3 endpoint used for config file fetching. Overrides S3_ENDPOINT env variable.
|
||||||
-v, --verbose Sets verbose level
|
-v, --verbose Sets verbose level
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -138,8 +144,9 @@ Flags:
|
|||||||
Global Flags:
|
Global Flags:
|
||||||
--cmdStdOut Pass to print command output to stdout
|
--cmdStdOut Pass to print command output to stdout
|
||||||
-f, --config string config file to read from
|
-f, --config string config file to read from
|
||||||
--log-file string log file to write to
|
--hostsConfig string yaml hosts file to read from
|
||||||
--s3-endpoint string Sets the S3 endpoint used for config file fetching. Overrides S3_ENDPOINT env variable.
|
--logFile string log file to write to
|
||||||
|
--s3Endpoint string Sets the S3 endpoint used for config file fetching. Overrides S3_ENDPOINT env variable.
|
||||||
-v, --verbose Sets verbose level
|
-v, --verbose Sets verbose level
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -161,8 +168,9 @@ Flags:
|
|||||||
Global Flags:
|
Global Flags:
|
||||||
--cmdStdOut Pass to print command output to stdout
|
--cmdStdOut Pass to print command output to stdout
|
||||||
-f, --config string config file to read from
|
-f, --config string config file to read from
|
||||||
--log-file string log file to write to
|
--hostsConfig string yaml hosts file to read from
|
||||||
--s3-endpoint string Sets the S3 endpoint used for config file fetching. Overrides S3_ENDPOINT env variable.
|
--logFile string log file to write to
|
||||||
|
--s3Endpoint string Sets the S3 endpoint used for config file fetching. Overrides S3_ENDPOINT env variable.
|
||||||
-v, --verbose Sets verbose level
|
-v, --verbose Sets verbose level
|
||||||
|
|
||||||
Use "backy list [command] --help" for more information about a command.
|
Use "backy list [command] --help" for more information about a command.
|
||||||
@@ -181,8 +189,9 @@ Flags:
|
|||||||
Global Flags:
|
Global Flags:
|
||||||
--cmdStdOut Pass to print command output to stdout
|
--cmdStdOut Pass to print command output to stdout
|
||||||
-f, --config string config file to read from
|
-f, --config string config file to read from
|
||||||
--log-file string log file to write to
|
--hostsConfig string yaml hosts file to read from
|
||||||
--s3-endpoint string Sets the S3 endpoint used for config file fetching. Overrides S3_ENDPOINT env variable.
|
--logFile string log file to write to
|
||||||
|
--s3Endpoint string Sets the S3 endpoint used for config file fetching. Overrides S3_ENDPOINT env variable.
|
||||||
-v, --verbose Sets verbose level
|
-v, --verbose Sets verbose level
|
||||||
```
|
```
|
||||||
## list lists
|
## list lists
|
||||||
@@ -199,7 +208,8 @@ Flags:
|
|||||||
Global Flags:
|
Global Flags:
|
||||||
--cmdStdOut Pass to print command output to stdout
|
--cmdStdOut Pass to print command output to stdout
|
||||||
-f, --config string config file to read from
|
-f, --config string config file to read from
|
||||||
--log-file string log file to write to
|
--hostsConfig string yaml hosts file to read from
|
||||||
--s3-endpoint string Sets the S3 endpoint used for config file fetching. Overrides S3_ENDPOINT env variable.
|
--logFile string log file to write to
|
||||||
|
--s3Endpoint string Sets the S3 endpoint used for config file fetching. Overrides S3_ENDPOINT env variable.
|
||||||
-v, --verbose Sets verbose level
|
-v, --verbose Sets verbose level
|
||||||
```
|
```
|
||||||
|
|||||||
0
docs/content/cli/exec.md
Normal file → Executable file
0
docs/content/cli/exec.md
Normal file → Executable file
0
docs/content/cli/list.md
Normal file → Executable file
0
docs/content/cli/list.md
Normal file → Executable file
0
docs/content/config/_index.md
Normal file → Executable file
0
docs/content/config/_index.md
Normal file → Executable file
0
docs/content/config/command-lists.md
Normal file → Executable file
0
docs/content/config/command-lists.md
Normal file → Executable file
40
docs/content/config/commands/_index.md
Normal file → Executable file
40
docs/content/config/commands/_index.md
Normal file → Executable file
@@ -19,7 +19,8 @@ Values available for this section **(case-sensitive)**:
|
|||||||
| `environment` | Defines environment variables for the command | `[]string` | no | Partial |
|
| `environment` | Defines environment variables for the command | `[]string` | no | Partial |
|
||||||
| `type` | See documentation further down the page. Additional fields may be required. | `string` | no | No |
|
| `type` | See documentation further down the page. Additional fields may be required. | `string` | no | No |
|
||||||
| `getOutput` | Command(s) output is in the notification(s) | `bool` | no | No |
|
| `getOutput` | Command(s) output is in the notification(s) | `bool` | no | No |
|
||||||
| `host` | If not specified, the command will execute locally. | `string` | no | No |
|
| `host` | Depricated: use `hosts`. If not specified, the command will execute locally. | `string` | no | No |
|
||||||
|
| `hosts` | Must be specified to run commands both locallly and in parrallel. | `[]string` | no | No |
|
||||||
| `scriptEnvFile` | When type is `scriptFile` or `script`, this file is prepended to the input. | `string` | no | No |
|
| `scriptEnvFile` | When type is `scriptFile` or `script`, this file is prepended to the input. | `string` | no | No |
|
||||||
| `shell` | Run the command in the shell | `string` | no | No |
|
| `shell` | Run the command in the shell | `string` | no | No |
|
||||||
| `hooks` | Hooks are used at the end of the individual command. Must have at least `error`, `success`, or `final`. | `map[string][]string` | no | No |
|
| `hooks` | Hooks are used at the end of the individual command. Must have at least `error`, `success`, or `final`. | `map[string][]string` | no | No |
|
||||||
@@ -51,7 +52,12 @@ Get command output when a notification is sent.
|
|||||||
|
|
||||||
Is not required. Can be `true` or `false`.
|
Is not required. Can be `true` or `false`.
|
||||||
|
|
||||||
#### host
|
### host
|
||||||
|
|
||||||
|
|
||||||
|
{{% notice warning %}}
|
||||||
|
Depricated: use `hosts` instead.
|
||||||
|
{{% /notice %}}
|
||||||
|
|
||||||
{{% notice info %}}
|
{{% notice info %}}
|
||||||
If any `host` is not defined or left blank, the command will run on the local machine.
|
If any `host` is not defined or left blank, the command will run on the local machine.
|
||||||
@@ -66,6 +72,36 @@ For example, say that I have a host defined in my SSH config with the `Host` def
|
|||||||
If I assign a value to host as `host: web-prod` and don't specify this value in the `hosts` object, web-prod will be used as the `Host` in searching the SSH config files.
|
If I assign a value to host as `host: web-prod` and don't specify this value in the `hosts` object, web-prod will be used as the `Host` in searching the SSH config files.
|
||||||
{{% /notice %}}
|
{{% /notice %}}
|
||||||
|
|
||||||
|
### hosts
|
||||||
|
|
||||||
|
{{% notice info %}}
|
||||||
|
If any `command.[name].hosts` index is `localhost` or `127.0.0.1`, the command will run on the local machine.
|
||||||
|
|
||||||
|
You can also remove the field to have the command run locally.
|
||||||
|
{{% /notice %}}
|
||||||
|
|
||||||
|
Host may or may not be defined in the `hosts` section.
|
||||||
|
|
||||||
|
{{% notice info %}}
|
||||||
|
If any `host` from the commands section does not match any object in the `hosts` section, the `Host` is assumed to be this value. This value will be used to search in the default SSH config files.
|
||||||
|
|
||||||
|
For example, say that I have a host defined in my SSH config with the `Host` defined as `web-prod`.
|
||||||
|
If I assign a value to host as `host: web-prod` and don't specify this value in the `hosts` object, web-prod will be used as the `Host` in searching the SSH config files.
|
||||||
|
{{% /notice %}}
|
||||||
|
|
||||||
|
###### Example:
|
||||||
|
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
command:
|
||||||
|
start-some-process:
|
||||||
|
cmd: start-server
|
||||||
|
hosts:
|
||||||
|
- prod-1
|
||||||
|
- prod-2
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
### shell
|
### shell
|
||||||
|
|
||||||
If shell is defined, the command will run in the specified shell.
|
If shell is defined, the command will run in the specified shell.
|
||||||
|
|||||||
6
docs/content/config/commands/packages.md
Normal file → Executable file
6
docs/content/config/commands/packages.md
Normal file → Executable file
@@ -8,7 +8,7 @@ This is dedicated to `package` commands. The command `type` field must be `packa
|
|||||||
|
|
||||||
| name | notes | type | required |
|
| name | notes | type | required |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
| `packageName` | The name of a package to be modified. | `string` | yes |
|
| `packageName` | The name of a package to be modified. | `[]packagemanagercommon.Package` | yes |
|
||||||
| `packageManager` | The name of the package manger to be used. | `string` | yes |
|
| `packageManager` | The name of the package manger to be used. | `string` | yes |
|
||||||
| `packageOperation` | The type of operation to perform. | `string` | yes |
|
| `packageOperation` | The type of operation to perform. | `string` | yes |
|
||||||
| `packageVersion` | The version of a package. | `string` | no |
|
| `packageVersion` | The version of a package. | `string` | no |
|
||||||
@@ -22,7 +22,9 @@ The following is an example of a package command:
|
|||||||
update-docker:
|
update-docker:
|
||||||
type: package
|
type: package
|
||||||
shell: zsh
|
shell: zsh
|
||||||
packageName: docker-ce
|
packages:
|
||||||
|
- name: docker-ce
|
||||||
|
version: 10
|
||||||
packageManager: apt
|
packageManager: apt
|
||||||
packageOperation: install
|
packageOperation: install
|
||||||
host: debian-based-host
|
host: debian-based-host
|
||||||
|
|||||||
0
docs/content/config/commands/user-commands.md
Normal file → Executable file
0
docs/content/config/commands/user-commands.md
Normal file → Executable file
0
docs/content/config/directives.md
Normal file → Executable file
0
docs/content/config/directives.md
Normal file → Executable file
0
docs/content/config/hosts.md
Normal file → Executable file
0
docs/content/config/hosts.md
Normal file → Executable file
0
docs/content/config/notifications.md
Normal file → Executable file
0
docs/content/config/notifications.md
Normal file → Executable file
0
docs/content/config/remote-resources.md
Normal file → Executable file
0
docs/content/config/remote-resources.md
Normal file → Executable file
0
docs/content/config/vault.md
Normal file → Executable file
0
docs/content/config/vault.md
Normal file → Executable file
0
docs/content/examples/backy.yaml
Normal file → Executable file
0
docs/content/examples/backy.yaml
Normal file → Executable file
0
docs/content/examples/example.yml
Normal file → Executable file
0
docs/content/examples/example.yml
Normal file → Executable file
0
docs/content/getting-started/_index.md
Normal file → Executable file
0
docs/content/getting-started/_index.md
Normal file → Executable file
0
docs/content/getting-started/config.md
Normal file → Executable file
0
docs/content/getting-started/config.md
Normal file → Executable file
0
docs/content/getting-started/install.md
Normal file → Executable file
0
docs/content/getting-started/install.md
Normal file → Executable file
0
docs/content/repositories/_index.md
Normal file → Executable file
0
docs/content/repositories/_index.md
Normal file → Executable file
4
docs/go.mod
Normal file → Executable file
4
docs/go.mod
Normal file → Executable file
@@ -3,6 +3,6 @@ module git.andrewnw.xyz/CyberShell/backy/docs
|
|||||||
go 1.19
|
go 1.19
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/McShelby/hugo-theme-relearn v0.0.0-20250103114405-80e448e5bdaa // indirect
|
github.com/McShelby/hugo-theme-relearn v0.0.0-20251115105808-d9ca8e8d8f59 // indirect
|
||||||
github.com/divinerites/plausible-hugo v1.21.1 // indirect
|
github.com/divinerites/plausible-hugo v1.22.0 // indirect
|
||||||
)
|
)
|
||||||
|
|||||||
14
docs/go.sum
Normal file → Executable file
14
docs/go.sum
Normal file → Executable file
@@ -1,10 +1,4 @@
|
|||||||
github.com/McShelby/hugo-theme-relearn v0.0.0-20230209073138-890d12ea922d h1:weq1mrQ/qNAvGrNgvZVL1K8adbT3bswZf2ABLr/LCIA=
|
github.com/McShelby/hugo-theme-relearn v0.0.0-20251115105808-d9ca8e8d8f59 h1:mnEjz/Wrpv6Hea26KeFJPx94w9g9ZHIurUEWvPdaEvs=
|
||||||
github.com/McShelby/hugo-theme-relearn v0.0.0-20230209073138-890d12ea922d/go.mod h1:mKQQdxZNIlLvAj8X3tMq+RzntIJSr9z7XdzuMomt0IM=
|
github.com/McShelby/hugo-theme-relearn v0.0.0-20251115105808-d9ca8e8d8f59/go.mod h1:mKQQdxZNIlLvAj8X3tMq+RzntIJSr9z7XdzuMomt0IM=
|
||||||
github.com/McShelby/hugo-theme-relearn v0.0.0-20241210183303-16d4de84becf h1:bMx4kwM7Q+dAzvSOWs3XWZ25o+n4mI0GPHqzbzeWb3M=
|
github.com/divinerites/plausible-hugo v1.22.0 h1:2pZheSaIMc+EtwcEeZv0ioU2qBOEZa1Ii7IaR/9II9k=
|
||||||
github.com/McShelby/hugo-theme-relearn v0.0.0-20241210183303-16d4de84becf/go.mod h1:mKQQdxZNIlLvAj8X3tMq+RzntIJSr9z7XdzuMomt0IM=
|
github.com/divinerites/plausible-hugo v1.22.0/go.mod h1:cxr+YB3FUwbLon8KCs4pV4Ankbkq6lJxTQUpNb5KqPo=
|
||||||
github.com/McShelby/hugo-theme-relearn v0.0.0-20250102210630-dd0597ffa4b2 h1:sWaC1/dL65v3iRvblEAaBLpKC5TIT0R9JASk1hZNET8=
|
|
||||||
github.com/McShelby/hugo-theme-relearn v0.0.0-20250102210630-dd0597ffa4b2/go.mod h1:mKQQdxZNIlLvAj8X3tMq+RzntIJSr9z7XdzuMomt0IM=
|
|
||||||
github.com/McShelby/hugo-theme-relearn v0.0.0-20250103114405-80e448e5bdaa h1:G+OnMEzK4XOzbbcf1SmaGyOYJ0h5idp/IJdguWs8ioU=
|
|
||||||
github.com/McShelby/hugo-theme-relearn v0.0.0-20250103114405-80e448e5bdaa/go.mod h1:mKQQdxZNIlLvAj8X3tMq+RzntIJSr9z7XdzuMomt0IM=
|
|
||||||
github.com/divinerites/plausible-hugo v1.21.1 h1:ZTWwjhZ0PmLMacCVGlcGiYFEZW7VaYE767tchDskOug=
|
|
||||||
github.com/divinerites/plausible-hugo v1.21.1/go.mod h1:cxr+YB3FUwbLon8KCs4pV4Ankbkq6lJxTQUpNb5KqPo=
|
|
||||||
|
|||||||
17
docs/layouts/_default/baseof.html
Normal file → Executable file
17
docs/layouts/_default/baseof.html
Normal file → Executable file
@@ -1,7 +1,7 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
{{- block "storeOutputFormat" . }}{{ end }}
|
{{- block "storeOutputFormat" . }}{{ end }}
|
||||||
{{- if .IsHome }}
|
{{- if .IsHome }}
|
||||||
{{- $hugoVersion := "0.126.0" }}
|
{{- $hugoVersion := "0.141.0" }}
|
||||||
{{- if lt hugo.Version $hugoVersion }}
|
{{- if lt hugo.Version $hugoVersion }}
|
||||||
{{- errorf "The Relearn theme requires Hugo %s or later" $hugoVersion }}
|
{{- errorf "The Relearn theme requires Hugo %s or later" $hugoVersion }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
@@ -36,12 +36,12 @@
|
|||||||
{{ (printf $link (partial "permalink.gotmpl" (dict "to" .)) .Rel .MediaType.Type ($title | htmlEscape)) | safeHTML }}
|
{{ (printf $link (partial "permalink.gotmpl" (dict "to" .)) .Rel .MediaType.Type ($title | htmlEscape)) | safeHTML }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{- partialCached "favicon.html" . }}
|
{{- partialCached "favicon.html" . }}
|
||||||
{{- partial "stylesheet.html" . }}
|
{{- partial "dependencies.html" (dict "page" . "location" "header") }}
|
||||||
{{- partial "dependencies.gotmpl" (dict "page" . "location" "header") }}
|
|
||||||
{{- partial "custom-header.html" . }}
|
{{- partial "custom-header.html" . }}
|
||||||
</head>
|
</head>
|
||||||
<body class="mobile-support {{ with .Store.Get "relearnOutputFormat" }}{{ . }}{{ else }}html{{ end }}{{- if .Site.Params.disableInlineCopyToClipBoard }} disableInlineCopyToClipboard{{ end }}{{- if .Site.Params.disableHoverBlockCopyToClipBoard }} disableHoverBlockCopyToClipBoard{{ end }}" data-url="{{ partial "permalink.gotmpl" (dict "to" .) }}">
|
<body class="mobile-support {{ with .Store.Get "relearnOutputFormat" }}{{ . }}{{ else }}html{{ end }}{{- if .Site.Params.disableHoverBlockCopyToClipBoard }} disableHoverBlockCopyToClipBoard{{ end }}" data-url="{{ partial "permalink.gotmpl" (dict "to" .) }}">
|
||||||
<div id="R-body" class="default-animation">
|
<div id="R-body" class="default-animation">
|
||||||
<div id="R-body-overlay"></div>
|
<div id="R-body-overlay"></div>
|
||||||
<nav id="R-topbar">
|
<nav id="R-topbar">
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
{{- $showBreadcrumb := (and (not .Params.disableBreadcrumb) (not .Site.Params.disableBreadcrumb)) }}
|
{{- $showBreadcrumb := (and (not .Params.disableBreadcrumb) (not .Site.Params.disableBreadcrumb)) }}
|
||||||
{{- if $showBreadcrumb }}
|
{{- if $showBreadcrumb }}
|
||||||
<ol class="topbar-breadcrumbs breadcrumbs highlightable" itemscope itemtype="http://schema.org/BreadcrumbList">
|
<ol class="topbar-breadcrumbs breadcrumbs highlightable" itemscope itemtype="http://schema.org/BreadcrumbList">
|
||||||
{{- partial "breadcrumbs.html" (dict "page" .) }}
|
{{- partial "breadcrumbs.html" (dict "page" . "schema" true) }}
|
||||||
</ol>
|
</ol>
|
||||||
{{- else }}
|
{{- else }}
|
||||||
<span class="topbar-breadcrumbs highlightable">
|
<span class="topbar-breadcrumbs highlightable">
|
||||||
@@ -74,11 +74,8 @@
|
|||||||
{{- partial "custom-comments.html" . }}
|
{{- partial "custom-comments.html" . }}
|
||||||
</div>
|
</div>
|
||||||
{{- block "menu" . }}{{ end }}
|
{{- block "menu" . }}{{ end }}
|
||||||
{{- $assetBusting := partialCached "assetbusting.gotmpl" . }}
|
{{- partial "dependencies.html" (dict "page" . "location" "footer") }}
|
||||||
<script src="{{"js/clipboard.min.js" | relURL}}{{ $assetBusting }}" defer></script>
|
|
||||||
<script src="{{"js/perfect-scrollbar.min.js" | relURL}}{{ $assetBusting }}" defer></script>
|
|
||||||
{{- partial "dependencies.gotmpl" (dict "page" . "location" "footer") }}
|
|
||||||
<script src="{{"js/theme.js" | relURL}}{{ $assetBusting }}" defer></script>
|
|
||||||
{{- partial "custom-footer.html" . }}
|
{{- partial "custom-footer.html" . }}
|
||||||
|
<div id="toast-container" role="status" aria-live="polite" aria-atomic="false"></div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
0
docs/layouts/partials/logo.html
Normal file → Executable file
0
docs/layouts/partials/logo.html
Normal file → Executable file
0
docs/layouts/shortcodes/code.html
Normal file → Executable file
0
docs/layouts/shortcodes/code.html
Normal file → Executable file
2
docs/themes/hugo-theme-relearn
vendored
2
docs/themes/hugo-theme-relearn
vendored
Submodule docs/themes/hugo-theme-relearn updated: 80e448e5bd...528984250a
0
docs/vangen.json
Normal file → Executable file
0
docs/vangen.json
Normal file → Executable file
0
docs/vangen/backy/index.html
Normal file → Executable file
0
docs/vangen/backy/index.html
Normal file → Executable file
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user