Skip to content
Snippets Groups Projects
Commit b99ddb3d authored by Florent Gluck's avatar Florent Gluck
Browse files

simplified nexush/libclient code (csv reader)

parent 9a74474d
No related branches found
No related tags found
No related merge requests found
package globals
const (
ENV_NEXUS_SERVER = "NEXUS_SERVER"
ENV_NEXUS_TOKEN = "NEXUS_TOKEN"
CsvFieldSeparator = ';'
)
......@@ -6,21 +6,47 @@ import (
"io"
"os"
"strconv"
g "gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient/globals"
)
const CsvFieldSeparator = ';'
// Simple wrapper over csv.Reader
type CsvReader struct {
file *os.File
reader *csv.Reader
}
func NewCsvReader(file string) (*CsvReader, error) {
csvReader := &CsvReader{}
var err error
csvReader.file, err = os.Open(file)
if err != nil {
return nil, err
}
csvReader.reader = csv.NewReader(csvReader.file)
csvReader.reader.Comma = CsvFieldSeparator // specify the column separator
csvReader.reader.Comment = '#' // lines starting with this symbol are to be ignored
return csvReader, nil
}
func (csvr *CsvReader) Read() (record []string, err error) {
return csvr.reader.Read()
}
func (csvr *CsvReader) Close() {
csvr.file.Close()
}
// Returns the specified column, as a slice of strings, from a CSV file.
// Columns are numbered starting at 0.
func ReadCSVColumn(csvFile string, column int) ([]string, error) {
file, err := os.Open(csvFile)
reader, err := NewCsvReader(csvFile)
if err != nil {
return nil, errors.New("Error: " + err.Error())
return nil, err
}
defer file.Close()
reader := csv.NewReader(file)
reader.Comma = g.CsvFieldSeparator // specify the column separator
reader.Comment = '#' // lines starting with this symbol are to be ignored
defer reader.Close()
var entries []string
for {
......
package cmdUser
import (
"encoding/csv"
"io"
"os"
"strings"
"gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/common/caps"
"gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/common/params"
g "gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient/globals"
nc "gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient/nexusclient"
"gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient/utils"
u "gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/nexush/utils"
......@@ -88,15 +85,13 @@ func (cmd *Add) Run(client *nc.NexusClient, args []string) int {
} else if argc == 1 {
// Detected syntax: file.csv
csvFile := args[0]
file, err := os.Open(csvFile)
reader, err := utils.NewCsvReader(csvFile)
if err != nil {
u.PrintlnErr(err)
return 1
}
defer file.Close()
reader := csv.NewReader(file)
reader.Comma = g.CsvFieldSeparator // specify the column separator
reader.Comment = '#' // lines starting with this symbol are to be ignored
defer reader.Close()
line := 0
for {
line += 1
......
package cmdUser
import (
"encoding/csv"
"io"
"os"
g "gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient/globals"
nc "gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient/nexusclient"
"gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient/utils"
u "gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/nexush/utils"
......@@ -55,15 +52,13 @@ func (cmd *Del) Run(client *nc.NexusClient, args []string) int {
return 1
}
file, err := os.Open(csvFile)
reader, err := utils.NewCsvReader(csvFile)
if err != nil {
u.PrintlnErr("Error: " + err.Error())
u.PrintlnErr(err)
return 1
}
defer file.Close()
reader := csv.NewReader(file)
reader.Comma = g.CsvFieldSeparator // specify the column separator
reader.Comment = '#' // lines starting with this symbol are to be ignored
defer reader.Close()
line := 0
for {
line += 1
......
package cmdUser
import (
"encoding/csv"
"io"
"os"
"strings"
"gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/common/caps"
"gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/common/params"
g "gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient/globals"
nc "gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient/nexusclient"
"gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient/utils"
u "gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/nexush/utils"
......@@ -78,15 +75,13 @@ func (cmd *SetCaps) Run(client *nc.NexusClient, args []string) int {
return 1
}
file, err := os.Open(csvFile)
reader, err := utils.NewCsvReader(csvFile)
if err != nil {
u.PrintlnErr("Error: " + err.Error())
u.PrintlnErr(err)
return 1
}
defer file.Close()
reader := csv.NewReader(file)
reader.Comma = g.CsvFieldSeparator // specify the column separator
reader.Comment = '#' // lines starting with this symbol are to be ignored
defer reader.Close()
line := 0
for {
line += 1
......
package cmdVM
import (
"encoding/csv"
"errors"
"io"
"net/mail"
"os"
"strings"
"gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/common/caps"
"gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/common/params"
g "gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient/globals"
nc "gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient/nexusclient"
"gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient/utils"
u "gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/nexush/utils"
......@@ -76,15 +73,12 @@ func (cmd *AddAccess) Run(client *nc.NexusClient, args []string) int {
// Single argument and it's a CSV file
csvFile := args[0]
file, err := os.Open(csvFile)
reader, err := utils.NewCsvReader(csvFile)
if err != nil {
u.PrintlnErr("Error: " + err.Error())
u.PrintlnErr(err)
return 1
}
defer file.Close()
reader := csv.NewReader(file)
reader.Comma = g.CsvFieldSeparator // specify the column separator
reader.Comment = '#' // lines starting with this symbol are to be ignored
defer reader.Close()
line := 0
for {
......
......@@ -4,8 +4,8 @@ import (
"fmt"
"os"
g "gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient/globals"
nc "gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient/nexusclient"
"gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient/utils"
u "gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/nexush/utils"
)
......@@ -64,7 +64,7 @@ func (cmd *Creds2csv) Run(client *nc.NexusClient, args []string) int {
defer f.Close()
for _, creds := range credsList {
sep := string(g.CsvFieldSeparator)
sep := string(utils.CsvFieldSeparator)
_, err := fmt.Fprintln(f, creds.ID.String()+sep+creds.Name+sep+creds.Pwd)
if err != nil {
u.PrintlnErr("Error: " + err.Error())
......
package cmdVM
import (
"encoding/csv"
"errors"
"io"
"net/mail"
"os"
g "gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient/globals"
nc "gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient/nexusclient"
"gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient/utils"
u "gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/nexush/utils"
......@@ -55,15 +52,13 @@ func (cmd *DelAccess) Run(client *nc.NexusClient, args []string) int {
// Single argument and it's a CSV file
csvFile := args[0]
file, err := os.Open(csvFile)
reader, err := utils.NewCsvReader(csvFile)
if err != nil {
u.PrintlnErr("Error: " + err.Error())
u.PrintlnErr(err)
return 1
}
defer file.Close()
reader := csv.NewReader(file)
reader.Comma = g.CsvFieldSeparator // specify the column separator
reader.Comment = '#' // lines starting with this symbol are to be ignored
defer reader.Close()
line := 0
for {
line += 1
......
......@@ -2,6 +2,8 @@ module gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/nexush
go 1.22.2
replace gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient => ../libclient
require (
gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/common v0.0.0-20250320135605-9ac7ec3df57a
gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient v0.0.0-20250320135605-9ac7ec3df57a
......
gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/common v0.0.0-20250320135605-9ac7ec3df57a h1:D4M2OnN+9vUALGPo6yNyWmcpvgGIzo/2HJj8SA4bGls=
gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/common v0.0.0-20250320135605-9ac7ec3df57a/go.mod h1:HzVsiYhPk7BhhvspjLchF3HlY1z+qIF89jG6+Hs8m3c=
gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient v0.0.0-20250325145622-5e5739fb0b5d h1:FooD8RWXNz2Y2fsVRm/tMjcGo0J9QWuiH30YP3uIhR8=
gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient v0.0.0-20250325145622-5e5739fb0b5d/go.mod h1:FTufL1WbpOEXB509PnsxzFFrYBx2RRSidxAqdDYZgGM=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM=
......
......@@ -11,7 +11,6 @@ import (
"syscall"
"gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/common/buildversion"
g "gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient/globals"
nc "gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient/nexusclient"
"gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient/version"
"gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/nexush/cmd"
......@@ -26,6 +25,8 @@ import (
"golang.org/x/term"
)
const env_nexus_server = "NEXUS_SERVER"
var (
//go:embed build/server
nexus_server string
......@@ -104,12 +105,12 @@ func run() int {
return 1
}
serverEnvVar, found := os.LookupEnv(g.ENV_NEXUS_SERVER)
serverEnvVar, found := os.LookupEnv(env_nexus_server)
if !found {
serverEnvVar = nexus_server
// u.PrintlnErr("Environment variable \""+g.ENV_NEXUS_SERVER+"\" must be set!")
// u.PrintlnErr("Environment variable \""+env_nexus_server+"\" must be set!")
// u.PrintlnErr("It defines the nexus server to connect to along the port number.")
// u.PrintlnErr("Example: export "+g.ENV_NEXUS_SERVER+"=192.168.1.42:1077")
// u.PrintlnErr("Example: export "+env_nexus_server+"=192.168.1.42:1077")
// return 1
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment