Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dmsg daemon completed #23

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,4 @@

.idea

.uuid
uuid.txt
dmsg_container
21 changes: 21 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
FROM golang:1.16.3-alpine AS build

ENV CGO_ENABLED=0

WORKDIR /src

# Copy Go code to the container
COPY . .
# Download deps usings go mod
RUN go mod download

# dmsg daemon
RUN go build -o /out/dmsgd ./dmsg

FROM ubuntu:20.10

# Copy compiled dmsg daemon
COPY --from=build /out/dmsgd /bin/dmsgd

# Making dmsgd to be an entrypoint
ENTRYPOINT ["/bin/dmsgd", "--log-dir=/dmsgd-data"]
21 changes: 21 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,23 @@
# skycoin-services

skycon-services

## dmsg daemon

This daemon will create `.dmsg-uuid` file, which contains your unique UUID.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if it was part of the requirements you got, but putting logs and config/ID values in the same file may be less than optimal. Unless this was requested specifically.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would help if you could summarise the purpose of this utility in 2-3 sentences as well.

It also log all the actions and results to the `dmsg-uuid.log` file.
These files will be created in the same directory, where **dmsgd** are running.

- **port** - to start HTTP server on
- **disc** - dmsg discovery server
- **sk** - dmsg server secret key
- **log-dir** - directory to store logs and UUID data

### Building from source

1. `go build -o dmsgd ./dmsg`
2. `./dmsgd`

### Running in Docker

1. `docker build -t dmsgd . && docker run -d -v /$PWD/docker_container:/dmsgd-data dmsgd --port=80 --disc="http://dmsg.discovery.skywire.skycoin.com" --sk=***`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Configuring the container with command flag/arguments gets a bit annoying. It may be preferable to mount a config similar to skycoin/skywire#794

I also can build the docker container and it seems to run but does not return any logs. Not sure if that is intended or if that indicates the container not working. Running docker ps seems to indicate we are not actually exposing any port of the container.

Most people also need some instruction they can copy paste, so I would suggest picking a port other than :80 as it is commonly used by other applications already.

22 changes: 16 additions & 6 deletions dmsg/dmsg.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,32 @@ import (
"io"
"net/http"
"os"
"path/filepath"
)

var (
dmsgDisc = "http://dmsg.discovery.skywire.skycoin.com"
dmsgPort = uint(80)
pk, sk = cipher.GenerateKeyPair()
log *logging.Logger
logFileName = "uuid.log"
logFileName = "dmsg-uuid.log"
logDir = "."
)

func init() {
flag.StringVar(&dmsgDisc, "disc", dmsgDisc, "dmsg discovery address")
flag.UintVar(&dmsgPort, "port", dmsgPort, "dmsg port to serve from")
flag.StringVar(&logDir, "log-dir", logDir, "Path to log dir")
flag.Var(&sk, "sk", "dmsg secret key")
flag.Parse()

if _, err := os.Stat(logDir); os.IsNotExist(err) {
_ = os.Mkdir(logDir, 0777)
}

uuidFileName = filepath.Join(logDir, uuidFileName)
logFileName = filepath.Join(logDir, logFileName)

log = logging.MustGetLogger("dmsg_daemon")
}

Expand All @@ -39,11 +54,6 @@ func configureLogger() {
func main() {
configureLogger()

flag.StringVar(&dmsgDisc, "disc", dmsgDisc, "dmsg discovery address")
flag.UintVar(&dmsgPort, "port", dmsgPort, "dmsg port to serve from")
flag.Var(&sk, "sk", "dmsg secret key")
flag.Parse()

// Get daemon UUID
UUID := getUUID()
log.WithField("UUID", UUID).Info("Daemon starting...")
Expand Down
33 changes: 24 additions & 9 deletions dmsg/dmsg_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,14 @@ package main
import (
"bytes"
"context"
"encoding/json"
"fmt"
"github.com/skycoin/dmsg/cipher"
"github.com/skycoin/dmsg/dmsghttp"
"github.com/skycoin/dmsg/dmsgtest"
dmsgtest2 "github.com/skycoin/skycoin-services/system-survey/cmd/dmsgtest"
"github.com/skycoin/skycoin-services/system-survey/cmd/httptest"
"github.com/skycoin/skycoin-services/system-survey/cmd/traceroutetest"
"github.com/stretchr/testify/assert"
"net/http"
"testing"
Expand All @@ -16,19 +20,30 @@ var respLisPort = 1560

func TestDaemon(t *testing.T) {
t.Cleanup(clearLogFile)
c, pk := getHttpClient(t)
res, _ := c.Post(
fmt.Sprintf("http://%s:%d/system_survey", pk.String(), respLisPort),
"application/json",
&bytes.Buffer{},
)

assert.Equal(t, http.StatusOK, res.StatusCode)
b, _ := json.Marshal(map[string]interface{}{
"apps": []string{"wget", "go", "git"},
"dmsg": &dmsgtest2.Input{
Tries: 3,
InitPort: 1563,
RespPort: 1563,
DiscServer: "local",
},
"traceroute": &traceroutetest.Input{
DestinationPort: 80,
DestinationIP: "8.8.8.8",
Retries: 10,
MaxHops: 30,
MaxLatency: 10,
},
"http": &httptest.Input{Addr: "0.0.0.0:8888"},
})

res, _ = c.Post(
c, pk := getHttpClient(t)
res, _ := c.Post(
fmt.Sprintf("http://%s:%d/system_survey", pk.String(), respLisPort),
"application/json",
&bytes.Buffer{},
bytes.NewBuffer(b),
)

assert.Equal(t, http.StatusOK, res.StatusCode)
Expand Down
74 changes: 62 additions & 12 deletions dmsg/router.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,15 @@ package main
import (
"encoding/json"
"github.com/gin-gonic/gin"
"github.com/skycoin/skycoin-services/system-survey/cmd/apps"
"github.com/skycoin/skycoin-services/system-survey/cmd/dmsgtest"
"github.com/skycoin/skycoin-services/system-survey/cmd/golang"
"github.com/skycoin/skycoin-services/system-survey/cmd/hwinfo"
"github.com/skycoin/skycoin-services/system-survey/cmd/netinfo"
"github.com/skycoin/skycoin-services/system-survey/tests/apps"
"github.com/skycoin/skycoin-services/system-survey/tests/dmsgtest"
"github.com/skycoin/skycoin-services/system-survey/tests/golang"
"github.com/skycoin/skycoin-services/system-survey/tests/httptest"
"github.com/skycoin/skycoin-services/system-survey/tests/hwinfo"
"github.com/skycoin/skycoin-services/system-survey/tests/netinfo"
"github.com/skycoin/skycoin-services/system-survey/tests/traceroutetest"
"net/http"
"sync"
)

func getRouter() *gin.Engine {
Expand All @@ -19,22 +22,69 @@ func getRouter() *gin.Engine {
}

type systemSurveyResponse struct {
Network interface{} `json:"network_info"`
Hardware interface{} `json:"hardware_info"`
Golang interface{} `json:"golang_info"`
Apps interface{} `json:"apps"`
DmsgTest interface{} `json:"dmsg_test"`
Network interface{} `json:"network_info"`
Hardware interface{} `json:"hardware_info"`
Golang interface{} `json:"golang_info"`
Apps interface{} `json:"apps"`
DmsgTest interface{} `json:"dmsg_test"`
TracerouteTest interface{} `json:"traceroute_test"`
HttpTest interface{} `json:"http_test"`
}

type systemSurveyRequest struct {
Apps []string `json:"apps"`
Dmsg *dmsgtest.Input `json:"dmsg"`
Traceroute *traceroutetest.Input `json:"traceroute"`
Http *httptest.Input `json:"http"`
}

func handleSystemSurvey(c *gin.Context) {
req := systemSurveyRequest{}
if err := c.ShouldBindJSON(&req); err != nil {
c.Status(http.StatusBadRequest)
return
}

res := systemSurveyResponse{
Network: netinfo.Get(),
Hardware: hwinfo.Run(),
Golang: golang.Run(),
Apps: apps.Run(nil),
DmsgTest: dmsgtest.Run(),
}

wg := &sync.WaitGroup{}
if req.Apps != nil {
wg.Add(1)
go func() {
res.Apps = apps.Run(req.Apps)
wg.Done()
}()
}

if req.Dmsg != nil {
wg.Add(1)
go func() {
res.DmsgTest = dmsgtest.Run(req.Dmsg)
wg.Done()
}()
}

if req.Traceroute != nil {
wg.Add(1)
go func() {
res.TracerouteTest = traceroutetest.Trace(req.Traceroute)
wg.Done()
}()
}

if req.Http != nil {
wg.Add(1)
go func() {
res.HttpTest = httptest.Run(req.Http)
wg.Done()
}()
}
wg.Wait()

b, _ := json.Marshal(res)
log.WithField("ip", c.ClientIP()).
WithField("result", string(b)).
Expand Down
2 changes: 1 addition & 1 deletion dmsg/uuid.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"os"
)

var uuidFileName = ".uuid"
var uuidFileName = ".dmsg-uuid"

func getUUID() uuid.UUID {
// Trying to read existing uuid.
Expand Down
12 changes: 12 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ github.com/alexflint/go-arg v1.3.0/go.mod h1:9iRbDxne7LcR/GSvEr7ma++GLpdIU1zrghf
github.com/alexflint/go-scalar v1.0.0/go.mod h1:GpHzbCOZXEKMEcygYQ5n/aa4Aq84zbxjy3MxYW0gjYw=
github.com/anacrolix/dht v0.0.0-20180412060941-24cbf25b72a4 h1:0yHJvFiGQhJ1gSHJOR8xzmnx45orEt7uiIB6guf0+zc=
github.com/anacrolix/dht v0.0.0-20180412060941-24cbf25b72a4/go.mod h1:hQfX2BrtuQsLQMYQwsypFAab/GvHg8qxwVi4OJdR1WI=
github.com/anacrolix/dht v0.0.0-20181129074040-b09db78595aa/go.mod h1:Ayu4t+5TsHQ07/P8XzRJqVofv7lU4R1ZTT7KW5+SPFA=
github.com/anacrolix/dht v1.0.1 h1:a7zVMiZWfPiToAUbjMZYeI3UvmsDP3j8vH5EDIAjM9c=
github.com/anacrolix/dht v1.0.1/go.mod h1:dtcIktBFD8YD/7ZcE5nQuuGGfLxcwa8+18mHl+GU+KA=
github.com/anacrolix/dht/v2 v2.0.1/go.mod h1:GbTT8BaEtfqab/LPd5tY41f3GvYeii3mmDUK300Ycyo=
github.com/anacrolix/dht/v2 v2.2.1-0.20191103020011-1dba080fb358/go.mod h1:d7ARx3WpELh9uOEEr0+8wvQeVTOkPse4UU6dKpv4q0E=
github.com/anacrolix/dht/v2 v2.3.2-0.20200103043204-8dce00767ebd/go.mod h1:cgjKyErDnKS6Mej5D1fEqBKg3KwFF2kpFZJp3L6/fGI=
Expand All @@ -54,10 +57,12 @@ github.com/anacrolix/envpprof v1.1.0/go.mod h1:My7T5oSqVfEn4MD4Meczkw/f5lSIndGAK
github.com/anacrolix/envpprof v1.1.1 h1:sHQCyj7HtiSfaZAzL2rJrQdyS7odLqlwO6nhk/tG/j8=
github.com/anacrolix/envpprof v1.1.1/go.mod h1:My7T5oSqVfEn4MD4Meczkw/f5lSIndGAKu/0SM/rkf4=
github.com/anacrolix/go-libutp v0.0.0-20180522111405-6baeb806518d/go.mod h1:beQSaSxwH2d9Eeu5ijrEnHei5Qhk+J6cDm1QkWFru4E=
github.com/anacrolix/go-libutp v0.0.0-20180808010927-aebbeb60ea05/go.mod h1:POY/GPlrFKRxnOKH1sGAB+NBWMoP+sI+hHJxgcgWbWw=
github.com/anacrolix/go-libutp v1.0.2/go.mod h1:uIH0A72V++j0D1nnmTjjZUiH/ujPkFxYWkxQ02+7S0U=
github.com/anacrolix/go-libutp v1.0.4 h1:95sv09MoNQbgEJqJLrotglFnVBAiMx1tyl6xMAmnAgg=
github.com/anacrolix/go-libutp v1.0.4/go.mod h1:8vSGX5g0b4eebsDBNVQHUXSCwYaN18Lnkse0hUW8/5w=
github.com/anacrolix/log v0.0.0-20180412014343-2323884b361d/go.mod h1:sf/7c2aTldL6sRQj/4UKyjgVZBu2+M2z9wf7MmwPiew=
github.com/anacrolix/log v0.1.0/go.mod h1:sf/7c2aTldL6sRQj/4UKyjgVZBu2+M2z9wf7MmwPiew=
github.com/anacrolix/log v0.3.0/go.mod h1:lWvLTqzAnCWPJA08T2HCstZi0L1y2Wyvm3FJgwU9jwU=
github.com/anacrolix/log v0.3.1-0.20190913000754-831e4ffe0174/go.mod h1:lWvLTqzAnCWPJA08T2HCstZi0L1y2Wyvm3FJgwU9jwU=
github.com/anacrolix/log v0.3.1-0.20191001111012-13cede988bcd/go.mod h1:lWvLTqzAnCWPJA08T2HCstZi0L1y2Wyvm3FJgwU9jwU=
Expand All @@ -69,6 +74,7 @@ github.com/anacrolix/log v0.8.0 h1:C/fErGvLyoTbCk44F5HW2izl9cCkeO3mVTL1+ya0HT0=
github.com/anacrolix/log v0.8.0/go.mod h1:s5yBP/j046fm9odtUTbHOfDUq/zh1W8OkPpJtnX0oQI=
github.com/anacrolix/missinggo v0.0.0-20180522035225-b4a5853e62ff/go.mod h1:b0p+7cn+rWMIphK1gDH2hrDuwGOcbB6V4VXeSsEfHVk=
github.com/anacrolix/missinggo v0.0.0-20180725070939-60ef2fbf63df/go.mod h1:kwGiTUTZ0+p4vAz3VbAI5a30t2YbvemcmspjKwrAz5s=
github.com/anacrolix/missinggo v0.0.0-20181129073415-3237bf955fed/go.mod h1:IN+9GUe7OxKMIs/XeXEbT/rMUolmJzmlZiXHS7FwD/Y=
github.com/anacrolix/missinggo v0.2.1-0.20190310234110-9fbdc9f242a8/go.mod h1:MBJu3Sk/k3ZfGYcS7z18gwfu72Ey/xopPFJJbTi5yIo=
github.com/anacrolix/missinggo v1.1.0/go.mod h1:MBJu3Sk/k3ZfGYcS7z18gwfu72Ey/xopPFJJbTi5yIo=
github.com/anacrolix/missinggo v1.1.2-0.20190815015349-b888af804467/go.mod h1:MBJu3Sk/k3ZfGYcS7z18gwfu72Ey/xopPFJJbTi5yIo=
Expand Down Expand Up @@ -107,6 +113,7 @@ github.com/anacrolix/tagflag v1.0.1/go.mod h1:gb0fiMQ02qU1djCSqaxGmruMvZGrMwSRei
github.com/anacrolix/tagflag v1.1.0/go.mod h1:Scxs9CV10NQatSmbyjqmqmeQNwGzlNe0CMUMIxqHIG8=
github.com/anacrolix/tagflag v1.1.1-0.20200411025953-9bb5209d56c2/go.mod h1:Scxs9CV10NQatSmbyjqmqmeQNwGzlNe0CMUMIxqHIG8=
github.com/anacrolix/torrent v0.0.0-20180622074351-fefeef4ee9eb/go.mod h1:3vcFVxgOASslNXHdivT8spyMRBanMCenHRpe0u5vpBs=
github.com/anacrolix/torrent v1.0.1/go.mod h1:ZYV1Z2Wx3jXYSh26mDvneAbk8XIUxfvoVil2GW962zY=
github.com/anacrolix/torrent v1.7.1/go.mod h1:uvOcdpOjjrAq3uMP/u1Ide35f6MJ/o8kMnFG8LV3y6g=
github.com/anacrolix/torrent v1.9.0/go.mod h1:jJJ6lsd2LD1eLHkUwFOhy7I0FcLYH0tHKw2K7ZYMHCs=
github.com/anacrolix/torrent v1.11.0/go.mod h1:FwBai7SyOFlflvfEOaM88ag/jjcBWxTOqD6dVU/lKKA=
Expand Down Expand Up @@ -168,6 +175,7 @@ github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFP
github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
github.com/edsrzf/mmap-go v1.0.0 h1:CEBF7HpRnUCSJgGUb5h1Gm7e3VkmVDrR8lvWVLtrOFw=
github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
github.com/elgatito/upnp v0.0.0-20180711183757-2f244d205f9a/go.mod h1:afkYpY8JAIL4341N7Zj9xJ5yTovsg6BkWfBFlCzIoF4=
github.com/elliotchance/orderedmap v1.2.0/go.mod h1:8hdSl6jmveQw8ScByd3AaNHNk51RhbTazdqtTty+NFw=
github.com/elliotchance/orderedmap v1.3.0 h1:k6m77/d0zCXTjsk12nX40TkEBkSICq8T4s6R6bpCqU0=
github.com/elliotchance/orderedmap v1.3.0/go.mod h1:8hdSl6jmveQw8ScByd3AaNHNk51RhbTazdqtTty+NFw=
Expand Down Expand Up @@ -311,6 +319,7 @@ github.com/huandu/xstrings v1.3.2 h1:L18LIDzqlW6xN2rEkpdV8+oL/IXWJ1APd+vsdYy4Wdw
github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
github.com/ipfs/go-ipfs v0.4.18/go.mod h1:iXzbK+Wa6eePj3jQg/uY6Uoq5iOwY+GToD/bgaRadto=
github.com/jaypipes/ghw v0.7.0 h1:DO0qK9hESxkOTWyd/93hjYBRL7MdVSFqaXdcR7n4pVY=
github.com/jaypipes/ghw v0.7.0/go.mod h1:+gR9bjm3W/HnFi90liF+Fj9GpCe/Dsibl9Im8KmC7c4=
github.com/jaypipes/pcidb v0.6.0 h1:VIM7GKVaW4qba30cvB67xSCgJPTzkG8Kzw/cbs5PHWU=
Expand Down Expand Up @@ -407,6 +416,7 @@ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7J
github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA=
github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE=
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=
github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8=
github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
Expand Down Expand Up @@ -713,10 +723,12 @@ golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5h
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190102155601-82a175fd1598/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190316082340-a2f829d7f35f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190318195719-6c81ef8f67ca/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
Expand Down
18 changes: 18 additions & 0 deletions system-survey/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
### Go template
# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib

# Test binary, built with `go test -c`
*.test

# Output of the go coverage tool, specifically when used with LiteIDE
*.out

# Dependency directories (remove the comment below to include it)
# vendor/

system-survey
5 changes: 5 additions & 0 deletions system-survey/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
.PHONY: build
.DEFAULT_GOAL := build

build:
go build -o system-survey
17 changes: 0 additions & 17 deletions system-survey/README.MD

This file was deleted.

Loading