Skip to content

Commit

Permalink
reset cmd buffer
Browse files Browse the repository at this point in the history
  • Loading branch information
davidnewhall committed Aug 12, 2024
1 parent 63b606d commit 57becf1
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 5 deletions.
2 changes: 1 addition & 1 deletion pkg/snapshot/snapshot.go
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ func (c *Config) getSnapshot(ctx context.Context, snap *Snapshot) ([]error, []er
}

var err error
if snap.Synology, err = GetSynology(); err != nil && !errors.Is(err, ErrNotSynology) {
if snap.Synology, err = GetSynology(true); err != nil && !errors.Is(err, ErrNotSynology) {
errs = append(errs, err)
} else if snap.Synology != nil {
snap.Synology.SetInfo(snap.System.InfoStat)
Expand Down
12 changes: 9 additions & 3 deletions pkg/snapshot/synology.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,12 @@ type Synology struct {
*/

// GetSynology checks if the app is running on a Synology, and gets system info.
func GetSynology() (*Synology, error) { //nolint:cyclop
func GetSynology(snapshot bool) (*Synology, error) { //nolint:cyclop
if !mnd.IsSynology {
return nil, ErrNotSynology
}

synoHA, err := getSynoHAStats()
synoHA, err := getSynoHAStats(snapshot)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -90,7 +90,11 @@ func GetSynology() (*Synology, error) { //nolint:cyclop
// getSynoHAStats uses `sudo synoha` to pull high-availability disk statuses.
// This package is not installed on most systems,
// this function ends at the LookPath in that case.
func getSynoHAStats() (map[string]string, error) {
func getSynoHAStats(run bool) (map[string]string, error) {
if !run {
return nil, nil //nolint:nilnil
}

synoha, err := exec.LookPath("synoha")
if err != nil {
// If the tool doesn't exist, bail without an error.
Expand All @@ -106,6 +110,8 @@ func getSynoHAStats() (map[string]string, error) {
cmdout := bytes.Buffer{} // Reuse buffer for every command.

for _, arg := range cmds {
cmdout.Reset()

cmd := exec.Command("sudo", synoha, "--"+arg)
cmd.Stderr = io.Discard // Do not care about error output.
cmd.Stdout = &cmdout // Use buffer for command output.
Expand Down
2 changes: 1 addition & 1 deletion pkg/website/hostinfo.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ func (s *Server) GetHostInfo(ctx context.Context) (*host.InfoStat, error) { //no
return nil, fmt.Errorf("getting host info: %w", err)
}

syn, err := snapshot.GetSynology()
syn, err := snapshot.GetSynology(false) // false makes it not do snapshot data, just get syno info.
if err == nil {
// This method writes synology data into hostInfo.
syn.SetInfo(hostInfo)
Expand Down

0 comments on commit 57becf1

Please sign in to comment.