Compare commits
8 Commits
remoteReso
...
v0.7.0
Author | SHA1 | Date | |
---|---|---|---|
67a1eab908 | |||
c618ca33f8 | |||
6e7d912fa2 | |||
b90d1958b2 | |||
c187fbb735 | |||
c3de4386ab | |||
e20141043c | |||
5d3c265ce9 |
@ -1,3 +0,0 @@
|
|||||||
kind: Added
|
|
||||||
body: '[feat]: package `packageOperation` option `checkVersion` implemented'
|
|
||||||
time: 2025-01-11T21:15:46.207199643-06:00
|
|
@ -1,3 +0,0 @@
|
|||||||
kind: Added
|
|
||||||
body: user management added - see docs
|
|
||||||
time: 2025-01-11T21:18:13.182822019-06:00
|
|
@ -1,3 +0,0 @@
|
|||||||
kind: Added
|
|
||||||
body: Support for remote config sources. Only config file and list can be used for now.
|
|
||||||
time: 2025-01-13T23:12:48.383700682-06:00
|
|
@ -1,3 +0,0 @@
|
|||||||
kind: Added
|
|
||||||
body: Cache functionality - still a WIP
|
|
||||||
time: 2025-01-28T15:35:24.512485671-06:00
|
|
@ -1,3 +0,0 @@
|
|||||||
kind: Added
|
|
||||||
body: Flag `--s3-endpoint` for config file fetching from S3
|
|
||||||
time: 2025-02-07T21:24:29.596055611-06:00
|
|
@ -1,3 +0,0 @@
|
|||||||
kind: Changed
|
|
||||||
body: Internal refactoring of config setup
|
|
||||||
time: 2025-01-13T23:10:07.215735108-06:00
|
|
@ -1,3 +0,0 @@
|
|||||||
kind: Changed
|
|
||||||
body: Formatting and sending for notifications
|
|
||||||
time: 2025-01-13T23:16:22.260458782-06:00
|
|
@ -1,3 +0,0 @@
|
|||||||
kind: Changed
|
|
||||||
body: "name of `configfetcher` to `remotefetcher`"
|
|
||||||
time: 2025-01-28T15:42:04.282668058-06:00
|
|
@ -1,3 +0,0 @@
|
|||||||
kind: Changed
|
|
||||||
body: Flags that took comma-separated lists now have to be passed multiple times for each argument.
|
|
||||||
time: 2025-02-08T15:15:08.457086102-06:00
|
|
@ -1,3 +0,0 @@
|
|||||||
kind: Fixed
|
|
||||||
body: Parsing of remote URLs when determining list config file path
|
|
||||||
time: 2025-01-28T15:38:06.957506929-06:00
|
|
@ -1,3 +0,0 @@
|
|||||||
kind: Fixed
|
|
||||||
body: Incorrect error notification template value
|
|
||||||
time: 2025-02-02T19:45:23.872797604-06:00
|
|
16
.changes/v0.7.0.md
Normal file
16
.changes/v0.7.0.md
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
## v0.7.0 - 2025-02-11
|
||||||
|
### Added
|
||||||
|
* [feat]: package `packageOperation` option `checkVersion` implemented
|
||||||
|
* user management added - see docs
|
||||||
|
* Support for remote config sources. Only config file and list can be used for now.
|
||||||
|
* Cache functionality - still a WIP
|
||||||
|
* Flag `--s3-endpoint` for config file fetching from S3
|
||||||
|
### Changed
|
||||||
|
* Internal refactoring of config setup
|
||||||
|
* Formatting and sending for notifications
|
||||||
|
* name of `configfetcher` to `remotefetcher`
|
||||||
|
* Flags that took comma-separated lists now have to be passed multiple times for each argument.
|
||||||
|
* Hosts passed to `exec host` now checked against default SSH config files
|
||||||
|
### Fixed
|
||||||
|
* Parsing of remote URLs when determining list config file path
|
||||||
|
* Incorrect error notification template value
|
18
CHANGELOG.md
18
CHANGELOG.md
@ -6,10 +6,26 @@ 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.7.0 - 2025-02-11
|
||||||
|
### Added
|
||||||
|
* [feat]: package `packageOperation` option `checkVersion` implemented
|
||||||
|
* user management added - see docs
|
||||||
|
* Support for remote config sources. Only config file and list can be used for now.
|
||||||
|
* Cache functionality - still a WIP
|
||||||
|
* Flag `--s3-endpoint` for config file fetching from S3
|
||||||
|
### Changed
|
||||||
|
* Internal refactoring of config setup
|
||||||
|
* Formatting and sending for notifications
|
||||||
|
* name of `configfetcher` to `remotefetcher`
|
||||||
|
* Flags that took comma-separated lists now have to be passed multiple times for each argument.
|
||||||
|
* Hosts passed to `exec host` now checked against default SSH config files
|
||||||
|
### Fixed
|
||||||
|
* Parsing of remote URLs when determining list config file path
|
||||||
|
* Incorrect error notification template value
|
||||||
|
|
||||||
## v0.6.1 - 2025-01-04
|
## v0.6.1 - 2025-01-04
|
||||||
### Fixed
|
### Fixed
|
||||||
* When running a list, hooks now run explicitly after the command executes. Fixed panic due to improper logic.
|
* When running a list, hooks now run explicitly after the command executes. Fixed panic due to improper logic.
|
||||||
|
|
||||||
## v0.6.0 - 2025-01-04
|
## v0.6.0 - 2025-01-04
|
||||||
### Added
|
### Added
|
||||||
* Command Type Package - allows one to perform package operations [docs](https://backy.cybershell.xyz/config/packages/)
|
* Command Type Package - allows one to perform package operations [docs](https://backy.cybershell.xyz/config/packages/)
|
||||||
|
21
cmd/host.go
21
cmd/host.go
@ -15,14 +15,16 @@ var (
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
// Holds command list to run
|
// Holds list of hosts to run commands on
|
||||||
var hostsList []string
|
var hostsList []string
|
||||||
|
|
||||||
|
// Holds command list to run
|
||||||
var cmdList []string
|
var cmdList []string
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
|
||||||
hostExecCommand.Flags().StringArrayVarP(&hostsList, "hosts", "m", nil, "Accepts space-separated names of hosts.")
|
hostExecCommand.Flags().StringArrayVarP(&hostsList, "hosts", "m", nil, "Accepts space-separated names of hosts. Specify multiple times for multiple hosts.")
|
||||||
hostExecCommand.Flags().StringArrayVarP(&cmdList, "command", "c", nil, "Accepts space-separated names of commands.")
|
hostExecCommand.Flags().StringArrayVarP(&cmdList, "command", "c", nil, "Accepts space-separated names of commands. Specify multiple times for multiple commands.")
|
||||||
parseS3Config()
|
parseS3Config()
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -42,13 +44,18 @@ func Host(cmd *cobra.Command, args []string) {
|
|||||||
if hostsList == nil {
|
if hostsList == nil {
|
||||||
logging.ExitWithMSG("error: hosts must be specified", 1, &backyConfOpts.Logger)
|
logging.ExitWithMSG("error: hosts must be specified", 1, &backyConfOpts.Logger)
|
||||||
}
|
}
|
||||||
// host is only checked when we read the SSH File
|
|
||||||
// so a check may not be needed here
|
|
||||||
// but we can check if the host is in the config file
|
|
||||||
for _, h := range hostsList {
|
for _, h := range hostsList {
|
||||||
|
// check if h exists in the config file
|
||||||
_, hostFound := backyConfOpts.Hosts[h]
|
_, hostFound := backyConfOpts.Hosts[h]
|
||||||
if !hostFound {
|
if !hostFound {
|
||||||
logging.ExitWithMSG("host "+h+" not found", 1, &backyConfOpts.Logger)
|
// check if h exists in the SSH config file
|
||||||
|
hostFoundInConfig, s := backy.CheckIfHostHasHostName(h)
|
||||||
|
if !hostFoundInConfig {
|
||||||
|
logging.ExitWithMSG("host "+h+" not found", 1, &backyConfOpts.Logger)
|
||||||
|
}
|
||||||
|
// create host with hostname and host
|
||||||
|
backyConfOpts.Hosts[h] = &backy.Host{Host: h, HostName: s}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if cmdList == nil {
|
if cmdList == nil {
|
||||||
|
@ -7,7 +7,7 @@ import (
|
|||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|
||||||
const versionStr = "0.6.1"
|
const versionStr = "0.7.0"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
versionCmd = &cobra.Command{
|
versionCmd = &cobra.Command{
|
||||||
|
@ -34,15 +34,17 @@ var Sprintf = fmt.Sprintf
|
|||||||
func (command *Command) RunCmd(cmdCtxLogger zerolog.Logger, opts *ConfigOpts) ([]string, error) {
|
func (command *Command) RunCmd(cmdCtxLogger zerolog.Logger, opts *ConfigOpts) ([]string, error) {
|
||||||
|
|
||||||
var (
|
var (
|
||||||
outputArr []string
|
ArgsStr string // concatenating the arguments
|
||||||
ArgsStr string
|
|
||||||
cmdOutBuf bytes.Buffer
|
cmdOutBuf bytes.Buffer
|
||||||
cmdOutWriters io.Writer
|
cmdOutWriters io.Writer
|
||||||
|
errSSH error
|
||||||
|
|
||||||
envVars = environmentVars{
|
envVars = environmentVars{
|
||||||
file: command.Env,
|
file: command.Env,
|
||||||
env: command.Environment,
|
env: command.Environment,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
outputArr []string // holds the output strings returned by processes
|
||||||
)
|
)
|
||||||
|
|
||||||
// Get the command type
|
// Get the command type
|
||||||
@ -53,13 +55,13 @@ func (command *Command) RunCmd(cmdCtxLogger zerolog.Logger, opts *ConfigOpts) ([
|
|||||||
ArgsStr += fmt.Sprintf(" %s", v)
|
ArgsStr += fmt.Sprintf(" %s", v)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// print the user's password if it is updated
|
||||||
if command.Type == "user" {
|
if command.Type == "user" {
|
||||||
if command.UserOperation == "password" {
|
if command.UserOperation == "password" {
|
||||||
cmdCtxLogger.Info().Str("password", command.UserPassword).Msg("user password to be updated")
|
cmdCtxLogger.Info().Str("password", command.UserPassword).Msg("user password to be updated")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var errSSH error
|
|
||||||
// is host defined
|
// is host defined
|
||||||
if command.Host != nil {
|
if command.Host != nil {
|
||||||
outputArr, errSSH = command.RunCmdSSH(cmdCtxLogger, opts)
|
outputArr, errSSH = command.RunCmdSSH(cmdCtxLogger, opts)
|
||||||
|
@ -757,3 +757,12 @@ func (h *Host) DetectOS(opts *ConfigOpts) (string, error) {
|
|||||||
osName := string(output)
|
osName := string(output)
|
||||||
return osName, nil
|
return osName, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func CheckIfHostHasHostName(host string) (bool, string) {
|
||||||
|
HostName, err := ssh_config.DefaultUserSettings.GetStrict(host, "HostName")
|
||||||
|
if err != nil {
|
||||||
|
return false, ""
|
||||||
|
}
|
||||||
|
println(HostName)
|
||||||
|
return HostName != "", HostName
|
||||||
|
}
|
||||||
|
8
release
8
release
@ -1,6 +1,10 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# export GORELEASER_CURRENT_TAG="$(go run backy.go version -V)"
|
export CURRENT_TAG="$(go run backy.go version -V)"
|
||||||
git tag "$(go run backy.go version -V)"
|
changie batch $CURRENT_TAG
|
||||||
|
changie merge
|
||||||
|
git add .changes/
|
||||||
|
git commit =am "$CURRENT_TAG"
|
||||||
|
git tag "$CURRENT_TAG"
|
||||||
git push all
|
git push all
|
||||||
git push all --tags
|
git push all --tags
|
||||||
# goreleaser release -f .goreleaser/gitea.yml --clean --release-notes=".changes/$(go run backy.go version -V).md"
|
# goreleaser release -f .goreleaser/gitea.yml --clean --release-notes=".changes/$(go run backy.go version -V).md"
|
Reference in New Issue
Block a user