move code to folder

This commit is contained in:
aceberg 2022-08-17 17:10:26 +07:00
parent 59bb345d98
commit 6f21e0af4c
15 changed files with 103 additions and 64 deletions

2
.gitignore vendored
View file

@ -1,3 +1,3 @@
# Ignore local data
data/
watchyourlan
watchyourlan

View file

@ -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

View file

@ -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

View file

@ -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
}

View file

@ -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
View 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
View 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)
}

View file

@ -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
)

View file

@ -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=

View file

@ -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))