1234567891011121314151617181920212223242526272829303132333435363738394041 |
- package samba
- import (
- "fmt"
- "os/exec"
- "strings"
- )
- // convertShareConfigToString converts a ShareConfig to its string representation for smb.conf
- func convertShareConfigToString(share *ShareConfig) string {
- var builder strings.Builder
- builder.WriteString(fmt.Sprintf("\n[%s]\n", share.Name))
- builder.WriteString(fmt.Sprintf("\tpath = %s\n", share.Path))
- if len(share.ValidUsers) > 0 {
- builder.WriteString(fmt.Sprintf("\tvalid users = %s\n", strings.Join(share.ValidUsers, " ")))
- }
- builder.WriteString(fmt.Sprintf("\tread only = %s\n", boolToYesNo(share.ReadOnly)))
- builder.WriteString(fmt.Sprintf("\tbrowseable = %s\n", boolToYesNo(share.Browseable)))
- builder.WriteString(fmt.Sprintf("\tguest ok = %s\n", boolToYesNo(share.GuestOk)))
- return builder.String()
- }
- // boolToYesNo converts a boolean to "yes" or "no"
- func boolToYesNo(value bool) string {
- if value {
- return "yes"
- }
- return "no"
- }
- // RestartSmbd restarts the smbd service using systemctl
- func restartSmbd() error {
- cmd := exec.Command("sudo", "systemctl", "restart", "smbd")
- output, err := cmd.CombinedOutput()
- if err != nil {
- return fmt.Errorf("failed to restart smbd: %v - %s", err, output)
- }
- return nil
- }
|