this repo has no description smallweb.run
smallweb
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

remove root support in smallweb

pomdtr 3500aef3 7c8f0e0e

+6 -104
+6 -104
cmd/service_linux.go
··· 20 20 var serviceConfigBytes []byte 21 21 var serviceConfig = template.Must(template.New("service").Parse(string(serviceConfigBytes))) 22 22 23 - func getServicePath(uid int) string { 24 - if uid == 0 { 25 - return path.Join("/etc", "systemd", "system", "smallweb.service") 26 - } 27 - 23 + func getServicePath() string { 28 24 return path.Join(os.Getenv("HOME"), ".config", "systemd", "user", "smallweb.service") 29 25 } 30 26 31 27 func InstallService(args []string) error { 32 - uid := os.Getuid() 33 - servicePath := getServicePath(uid) 28 + servicePath := getServicePath() 34 29 if utils.FileExists(servicePath) { 35 30 return fmt.Errorf("service already installed") 36 31 } ··· 64 59 return fmt.Errorf("failed to write service file: %v", err) 65 60 } 66 61 67 - if uid == 0 { 68 - if err := exec.Command("systemctl", "daemon-reload").Run(); err != nil { 69 - return fmt.Errorf("failed to reload systemd manager configuration: %v", err) 70 - } 71 - 72 - if err := exec.Command("systemctl", "enable", "smallweb").Run(); err != nil { 73 - return fmt.Errorf("failed to enable service: %v", err) 74 - } 75 - 76 - if err := exec.Command("systemctl", "start", "smallweb").Run(); err != nil { 77 - return fmt.Errorf("failed to start service: %v", err) 78 - } 79 - 80 - return nil 81 - } 82 - 83 62 // Reload the systemd manager configuration 84 63 if err := exec.Command("systemctl", "--user", "daemon-reload").Run(); err != nil { 85 64 return fmt.Errorf("failed to reload systemd manager configuration: %v", err) ··· 99 78 } 100 79 101 80 func StartService() error { 102 - uid := os.Getuid() 103 - servicePath := getServicePath(uid) 81 + servicePath := getServicePath() 104 82 if !utils.FileExists(servicePath) { 105 83 return fmt.Errorf("service not installed") 106 84 } 107 85 108 - if uid == 0 { 109 - if err := exec.Command("systemctl", "start", "smallweb").Run(); err != nil { 110 - return fmt.Errorf("failed to start service: %v", err) 111 - } 112 - 113 - return nil 114 - } 115 - 116 86 if err := exec.Command("systemctl", "--user", "start", "smallweb").Run(); err != nil { 117 87 return fmt.Errorf("failed to start service: %v", err) 118 88 } ··· 121 91 } 122 92 123 93 func StopService() error { 124 - uid := os.Getuid() 125 - servicePath := getServicePath(uid) 94 + servicePath := getServicePath() 126 95 if !utils.FileExists(servicePath) { 127 96 return fmt.Errorf("service not installed") 128 97 } 129 98 130 - if uid == 0 { 131 - if err := exec.Command("systemctl", "stop", "smallweb").Run(); err != nil { 132 - return fmt.Errorf("failed to stop service: %v", err) 133 - } 134 - 135 - return nil 136 - } 137 - 138 99 if err := exec.Command("systemctl", "--user", "stop", "smallweb").Run(); err != nil { 139 100 return fmt.Errorf("failed to stop service: %v", err) 140 101 } ··· 143 104 } 144 105 145 106 func RestartService() error { 146 - uid := os.Getuid() 147 - servicePath := getServicePath(uid) 107 + servicePath := getServicePath() 148 108 if !utils.FileExists(servicePath) { 149 109 return fmt.Errorf("service not installed") 150 110 } 151 111 152 - if uid == 0 { 153 - if err := exec.Command("systemctl", "restart", "smallweb").Run(); err != nil { 154 - return fmt.Errorf("failed to restart service: %v", err) 155 - } 156 - 157 - return nil 158 - } 159 - 160 112 if err := exec.Command("systemctl", "--user", "restart", "smallweb").Run(); err != nil { 161 113 return fmt.Errorf("failed to restart service: %v", err) 162 114 } ··· 165 117 } 166 118 167 119 func UninstallService() error { 168 - uid := os.Getuid() 169 - servicePath := getServicePath(uid) 120 + servicePath := getServicePath() 170 121 if !utils.FileExists(servicePath) { 171 122 return fmt.Errorf("service not installed") 172 123 } 173 124 174 - if uid == 0 { 175 - if err := exec.Command("systemctl", "stop", "smallweb").Run(); err != nil { 176 - return fmt.Errorf("failed to stop service: %v", err) 177 - } 178 - 179 - if err := exec.Command("systemctl", "disable", "smallweb").Run(); err != nil { 180 - return fmt.Errorf("failed to disable service: %v", err) 181 - } 182 - 183 - if err := os.Remove(servicePath); err != nil { 184 - return fmt.Errorf("failed to remove service file: %v", err) 185 - } 186 - 187 - if err := exec.Command("systemctl", "daemon-reload").Run(); err != nil { 188 - return fmt.Errorf("failed to reload systemd manager configuration: %v", err) 189 - } 190 - 191 - return nil 192 - } 193 - 194 125 // Stop the service if it is running 195 126 if err := exec.Command("systemctl", "--user", "stop", "smallweb").Run(); err != nil { 196 127 return fmt.Errorf("failed to stop service: %v", err) ··· 214 145 } 215 146 216 147 func PrintServiceLogs(follow bool) error { 217 - uid := os.Getuid() 218 - if uid == 0 { 219 - logCmdArg := []string{"smallweb"} 220 - if follow { 221 - logCmdArg = append(logCmdArg, "-f") 222 - } 223 - 224 - logCmd := exec.Command("journalctl", logCmdArg...) 225 - logCmd.Stdout = os.Stdout 226 - logCmd.Stderr = os.Stderr 227 - if err := logCmd.Run(); err != nil { 228 - return fmt.Errorf("failed to execute journalctl: %v", err) 229 - } 230 - 231 - return nil 232 - } 233 - 234 148 logCmdArgs := []string{"--user", "--user-unit", "smallweb"} 235 149 if follow { 236 150 logCmdArgs = append(logCmdArgs, "-f") ··· 247 161 } 248 162 249 163 func ViewServiceStatus() error { 250 - uid := os.Getuid() 251 - 252 - if uid == 0 { 253 - statusCmd := exec.Command("systemctl", "status", "smallweb") 254 - statusCmd.Stdout = os.Stdout 255 - statusCmd.Stderr = os.Stderr 256 - if err := statusCmd.Run(); err != nil { 257 - return fmt.Errorf("failed to get service status: %v", err) 258 - } 259 - return nil 260 - } 261 - 262 164 statusCmd := exec.Command("systemctl", "--user", "status", "smallweb") 263 165 statusCmd.Stdout = os.Stdout 264 166 statusCmd.Stderr = os.Stderr