(operation string)
| 106 | } |
| 107 | |
| 108 | func (u *SSHService) OperateSSH(operation string) error { |
| 109 | serviceName, err := loadServiceName() |
| 110 | if err != nil { |
| 111 | return err |
| 112 | } |
| 113 | switch operation { |
| 114 | case "start", "restart": |
| 115 | if err := stopSSHSocketIfActive(serviceName); err != nil { |
| 116 | return err |
| 117 | } |
| 118 | case "stop": |
| 119 | if err := stopSSHSocketIfActive(serviceName); err != nil { |
| 120 | return err |
| 121 | } |
| 122 | case "enable", "disable": |
| 123 | if operation == "disable" { |
| 124 | if err := disableSSHSocket(serviceName, false); err != nil { |
| 125 | return err |
| 126 | } |
| 127 | } else { |
| 128 | if err := disableSSHSocket(serviceName, true); err != nil { |
| 129 | return err |
| 130 | } |
| 131 | if err := controller.Handle("enable", serviceName+".service"); err != nil { |
| 132 | return fmt.Errorf("enable %s.service failed, err: %v", serviceName, err) |
| 133 | } |
| 134 | return nil |
| 135 | } |
| 136 | serviceName += ".service" |
| 137 | } |
| 138 | |
| 139 | if err := controller.Handle(operation, serviceName); err != nil { |
| 140 | return fmt.Errorf("%s %s failed, err: %v", operation, serviceName, err) |
| 141 | } |
| 142 | return nil |
| 143 | } |
| 144 | |
| 145 | func restartSSHService(serviceName string) error { |
| 146 | if err := stopSSHSocketIfActive(serviceName); err != nil { |
nothing calls this directly
no test coverage detected