Compare commits
No commits in common. "master" and "v0.7.1" have entirely different histories.
32
README.md
32
README.md
@ -1,4 +1,4 @@
|
|||||||
# [go-serviceman](https://git.rootprojects.org/root/serviceman)
|
# go-serviceman
|
||||||
|
|
||||||
Cross-platform service management made easy.
|
Cross-platform service management made easy.
|
||||||
|
|
||||||
@ -77,24 +77,6 @@ The **default** is to register a _user_ services. To register a _system_ service
|
|||||||
|
|
||||||
# Install
|
# Install
|
||||||
|
|
||||||
You can install `serviceman` directly from the official git releases with [`webi`](https://webinstall.dev/serviceman):
|
|
||||||
|
|
||||||
**Mac**, **Linux**:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
curl -sL https://webinstall.dev/serviceman | bash
|
|
||||||
```
|
|
||||||
|
|
||||||
**Windows 10**:
|
|
||||||
|
|
||||||
```pwsh
|
|
||||||
curl.exe -sLA "MS" https://webinstall.dev/serviceman | powershell
|
|
||||||
```
|
|
||||||
|
|
||||||
You can run this from cmd.exe or PowerShell (curl.exe is a native part of Windows 10).
|
|
||||||
|
|
||||||
## Manual Install
|
|
||||||
|
|
||||||
There are a number of pre-built binaries.
|
There are a number of pre-built binaries.
|
||||||
|
|
||||||
If none of them work for you, or you prefer to build from source,
|
If none of them work for you, or you prefer to build from source,
|
||||||
@ -102,16 +84,8 @@ see the instructions for building far down below.
|
|||||||
|
|
||||||
## Downloads
|
## Downloads
|
||||||
|
|
||||||
```
|
|
||||||
curl -fsSL "https://rootprojects.org/serviceman/dist/$(uname -s)/$(uname -m)/serviceman" -o serviceman
|
|
||||||
chmod +x ./serviceman
|
|
||||||
```
|
|
||||||
|
|
||||||
### MacOS
|
### MacOS
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>See download options</summary>
|
|
||||||
|
|
||||||
MacOS (darwin): [64-bit Download ](https://rootprojects.org/serviceman/dist/darwin/amd64/serviceman)
|
MacOS (darwin): [64-bit Download ](https://rootprojects.org/serviceman/dist/darwin/amd64/serviceman)
|
||||||
|
|
||||||
```
|
```
|
||||||
@ -119,8 +93,6 @@ curl https://rootprojects.org/serviceman/dist/darwin/amd64/serviceman -o service
|
|||||||
chmod +x ./serviceman
|
chmod +x ./serviceman
|
||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
### Windows
|
### Windows
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
@ -153,7 +125,6 @@ powershell.exe "(New-Object Net.WebClient).DownloadFile('https://rootprojects.or
|
|||||||
|
|
||||||
### Linux
|
### Linux
|
||||||
|
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>See download options</summary>
|
<summary>See download options</summary>
|
||||||
|
|
||||||
@ -649,3 +620,4 @@ MPL-2.0 |
|
|||||||
Copyright 2019 AJ ONeal.
|
Copyright 2019 AJ ONeal.
|
||||||
|
|
||||||
<!-- {{ end }} -->
|
<!-- {{ end }} -->
|
||||||
|
<!-- {{ end }} -->
|
||||||
|
|||||||
@ -3,7 +3,6 @@ package manager
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
@ -122,12 +121,7 @@ func getSystemSrvs() ([]string, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func getUserSrvs(home string) ([]string, error) {
|
func getUserSrvs(home string) ([]string, error) {
|
||||||
confDir := filepath.Join(home, srvUserPath)
|
return getSrvs(filepath.Join(home, srvUserPath))
|
||||||
err := os.MkdirAll(confDir, 0755)
|
|
||||||
if nil != err {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return getSrvs(confDir)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// "come.example.foo.plist" matches "foo"
|
// "come.example.foo.plist" matches "foo"
|
||||||
|
|||||||
@ -1,32 +0,0 @@
|
|||||||
package manager
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"io/ioutil"
|
|
||||||
"os"
|
|
||||||
"path/filepath"
|
|
||||||
"testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestEmptyUserServicePath(t *testing.T) {
|
|
||||||
srvs, err := getUserSrvs("/tmp/fakeuser")
|
|
||||||
if nil != err {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
if len(srvs) > 0 {
|
|
||||||
t.Fatal(fmt.Errorf("sanity fail: shouldn't get services from empty directory"))
|
|
||||||
}
|
|
||||||
|
|
||||||
dirs, err := ioutil.ReadDir(filepath.Join("/tmp/fakeuser", srvUserPath))
|
|
||||||
if nil != err {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
if len(dirs) > 0 {
|
|
||||||
t.Fatal(fmt.Errorf("sanity fail: shouldn't get listing from empty directory"))
|
|
||||||
}
|
|
||||||
|
|
||||||
err = os.RemoveAll("/tmp/fakeuser")
|
|
||||||
if nil != err {
|
|
||||||
panic("couldn't remove /tmp/fakeuser")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -230,7 +230,7 @@ func add() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if len(ass) > 0 {
|
if len(ass) > 0 {
|
||||||
fmt.Printf("OPTIONS: Making some assumptions...\n\n")
|
fmt.Println("OPTIONS: Making some assumptions...\n")
|
||||||
for i := range ass {
|
for i := range ass {
|
||||||
fmt.Println("\t" + ass[i])
|
fmt.Println("\t" + ass[i])
|
||||||
}
|
}
|
||||||
@ -350,7 +350,7 @@ func list() {
|
|||||||
fmt.Fprintf(os.Stderr, "\n")
|
fmt.Fprintf(os.Stderr, "\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Printf("serviceman-managed services:\n\n")
|
fmt.Println("serviceman-managed services:\n")
|
||||||
for i := range managed {
|
for i := range managed {
|
||||||
fmt.Println("\t" + managed[i])
|
fmt.Println("\t" + managed[i])
|
||||||
}
|
}
|
||||||
@ -360,7 +360,7 @@ func list() {
|
|||||||
fmt.Println("")
|
fmt.Println("")
|
||||||
|
|
||||||
if verbose {
|
if verbose {
|
||||||
fmt.Printf("other services:\n\n")
|
fmt.Println("other services:\n")
|
||||||
for i := range others {
|
for i := range others {
|
||||||
fmt.Println("\t" + others[i])
|
fmt.Println("\t" + others[i])
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user