move code to folder
This commit is contained in:
parent
59bb345d98
commit
6f21e0af4c
15 changed files with 103 additions and 64 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -1,3 +1,3 @@
|
|||
# Ignore local data
|
||||
data/
|
||||
watchyourlan
|
||||
watchyourlan
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ FROM ubuntu:20.04
|
|||
RUN apt update && apt install -y arp-scan && apt clean \
|
||||
&& mkdir /data
|
||||
|
||||
COPY templates /app/templates
|
||||
COPY watchyourlan /app/
|
||||
COPY src/templates /app/templates
|
||||
COPY src/watchyourlan /app/
|
||||
|
||||
EXPOSE 8840
|
||||
|
||||
|
|
|
|||
11
Makefile
11
Makefile
|
|
@ -1,17 +1,20 @@
|
|||
DUSER=aceberg
|
||||
DNAME=watchyourlan
|
||||
DPORT=8840
|
||||
|
||||
VERSION=0.4
|
||||
|
||||
mod:
|
||||
rm go.mod
|
||||
go mod init $(DNAME)
|
||||
cd src && \
|
||||
rm go.mod && \
|
||||
go mod init $(DNAME) && \
|
||||
go mod tidy
|
||||
|
||||
run:
|
||||
cd src && \
|
||||
sudo go run .
|
||||
|
||||
go-build:
|
||||
cd src && \
|
||||
go build .
|
||||
|
||||
docker-build:
|
||||
|
|
@ -26,7 +29,7 @@ docker-run:
|
|||
$(DUSER)/$(DNAME):$(VERSION)
|
||||
|
||||
clean:
|
||||
rm $(DNAME) || true
|
||||
rm src/$(DNAME) || true
|
||||
docker rmi -f $(DUSER)/$(DNAME):latest $(DUSER)/$(DNAME):$(VERSION)
|
||||
|
||||
dev: go-build docker-build docker-run
|
||||
38
db-create.go
38
db-create.go
|
|
@ -1,38 +0,0 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
"fmt"
|
||||
"log"
|
||||
"database/sql"
|
||||
_ "github.com/mattn/go-sqlite3"
|
||||
)
|
||||
|
||||
func db_create(dbPath string) {
|
||||
if _, err := os.Stat(dbPath); err == nil {
|
||||
fmt.Println("DB exists")
|
||||
} else {
|
||||
sqlStatement := `CREATE TABLE "now" (
|
||||
"ID" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
|
||||
"NAME" TEXT,
|
||||
"IP" TEXT,
|
||||
"MAC" TEXT,
|
||||
"HW" TEXT,
|
||||
"DATE" TEXT,
|
||||
"KNOWN" INTEGER DEFAULT 0
|
||||
);`
|
||||
db_query(dbPath, sqlStatement)
|
||||
}
|
||||
}
|
||||
|
||||
func db_query (dbPath string, sqlStatement string) (*sql.Rows) {
|
||||
db, _ := sql.Open("sqlite3", dbPath)
|
||||
defer db.Close()
|
||||
|
||||
res, err := db.Query(sqlStatement)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
return res
|
||||
}
|
||||
15
db-search.go
15
db-search.go
|
|
@ -1,15 +0,0 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
// "os"
|
||||
"fmt"
|
||||
// "log"
|
||||
// "database/sql"
|
||||
// _ "github.com/mattn/go-sqlite3"
|
||||
)
|
||||
|
||||
func db_search(dbPath string) {
|
||||
sqlStatement := ``
|
||||
res := db_query(dbPath, sqlStatement)
|
||||
fmt.Println(res)
|
||||
}
|
||||
56
src/db-connect.go
Normal file
56
src/db-connect.go
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"database/sql"
|
||||
_ "github.com/mattn/go-sqlite3"
|
||||
)
|
||||
|
||||
// func db_query (dbPath string, sqlStatement string) (*sql.Rows) {
|
||||
// db, _ := sql.Open("sqlite3", dbPath)
|
||||
// defer db.Close()
|
||||
|
||||
// res, err := db.Query(sqlStatement)
|
||||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// }
|
||||
// return res
|
||||
// }
|
||||
|
||||
func db_exec (dbPath string, sqlStatement string) {
|
||||
db, _ := sql.Open("sqlite3", dbPath)
|
||||
defer db.Close()
|
||||
|
||||
_, err := db.Exec(sqlStatement)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func db_select(dbPath string) (dbHosts []Host) {
|
||||
db, _ := sql.Open("sqlite3", dbPath)
|
||||
defer db.Close()
|
||||
|
||||
sqlStatement := `SELECT * FROM "now"`
|
||||
//res := db_query(dbPath, sqlStatement)
|
||||
|
||||
res, err := db.Query(sqlStatement)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
dbHosts = []Host{}
|
||||
for res.Next() {
|
||||
var oneHost Host
|
||||
err = res.Scan(&oneHost.Id, &oneHost.Name, &oneHost.Ip, &oneHost.Mac, &oneHost.Hw, &oneHost.Date, &oneHost.Known)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
dbHosts = append(dbHosts, oneHost)
|
||||
}
|
||||
|
||||
fmt.Println("Select all:", dbHosts)
|
||||
return dbHosts
|
||||
}
|
||||
31
src/db-edit.go
Normal file
31
src/db-edit.go
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
func db_create(dbPath string) {
|
||||
if _, err := os.Stat(dbPath); err == nil {
|
||||
fmt.Println("DB exists")
|
||||
} else {
|
||||
sqlStatement := `CREATE TABLE "now" (
|
||||
"ID" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
|
||||
"NAME" TEXT NOT NULL,
|
||||
"IP" TEXT,
|
||||
"MAC" TEXT,
|
||||
"HW" TEXT,
|
||||
"DATE" TEXT,
|
||||
"KNOWN" INTEGER DEFAULT 0
|
||||
);`
|
||||
db_exec(dbPath, sqlStatement)
|
||||
fmt.Println("Table created!")
|
||||
}
|
||||
}
|
||||
|
||||
func db_insert(dbPath string, oneHost Host) {
|
||||
sqlStatement := `INSERT INTO "now" (NAME, IP, MAC, HW, DATE, KNOWN) VALUES ('','%s','%s','%s','%s', '%d');`
|
||||
sqlStatement = fmt.Sprintf(sqlStatement, oneHost.Ip, oneHost.Mac, oneHost.Hw, oneHost.Date, 1)
|
||||
fmt.Println("Insert statement:", sqlStatement)
|
||||
db_exec(dbPath, sqlStatement)
|
||||
}
|
||||
|
|
@ -3,7 +3,7 @@ module watchyourlan
|
|||
go 1.19
|
||||
|
||||
require (
|
||||
github.com/mattn/go-sqlite3 v1.14.14
|
||||
github.com/mattn/go-sqlite3 v1.14.15
|
||||
github.com/spf13/viper v1.12.0
|
||||
)
|
||||
|
||||
|
|
@ -133,8 +133,8 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
|||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||
github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo=
|
||||
github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
|
||||
github.com/mattn/go-sqlite3 v1.14.14 h1:qZgc/Rwetq+MtyE18WhzjokPD93dNqLGNT3QJuLvBGw=
|
||||
github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
|
||||
github.com/mattn/go-sqlite3 v1.14.15 h1:vfoHhTN1af61xCRSWzFIWzx2YskyMTwHLrExkBOjvxI=
|
||||
github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
|
||||
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
|
||||
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
||||
github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8=
|
||||
|
|
@ -27,9 +27,11 @@ func main() {
|
|||
|
||||
foundHosts := parse_output(scan_iface(newConfig.Iface))
|
||||
|
||||
fmt.Println(foundHosts)
|
||||
fmt.Println("Found hosts:", foundHosts)
|
||||
|
||||
db_create(newConfig.DbPath)
|
||||
db_insert(newConfig.DbPath, foundHosts[0])
|
||||
db_select(newConfig.DbPath)
|
||||
|
||||
fmt.Println(fmt.Sprintf("http://%s:%s", newConfig.GuiIP, newConfig.GuiPort))
|
||||
|
||||
Loading…
Reference in a new issue