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

Moved nexus-exam to its own independent directory, outside of the original client directory

parent effa3585
No related branches found
No related tags found
No related merge requests found
......@@ -9,7 +9,6 @@ BUILD_DIR_ABS=$(PWD)/$(BUILD_DIR)
SERVER_BINARY=nexus-server
NEXUSH_BINARY=nexush
NEXUSCLI_BINARY=nexus-cli
NEXUS_EXAM_BINARY=nexus-exam
GENPWD_BINARY=genpwd
# ------------------------------------
......@@ -235,8 +234,6 @@ SRC_ABS_CLIENT=$(PWD)/$(SRC_CLIENT)
OSES_CLIENT=linux windows darwin
ARCHES_CLIENT=amd64 arm64 386
RESOURCES_DIR_CLIENT=client/defaults/resources
NEXUS_EXAM_USER_CREDS_FILE=client/nexus-exam/nexus_exam_user.val
NEXUS_EXAM_PWD_CREDS_FILE=client/nexus-exam/nexus_exam_pwd.val
check_bin_var:
$(call check_defined, BIN)
......@@ -266,10 +263,6 @@ help_client:
@echo " build_nexush Build nexush for Linux/amd64; require SERVER environment"
@echo " variable (see below)"
@echo " build_nexus-cli Build nexus-cli for Linux/amd64; same as above"
@echo " build_nexus-exam Build nexus-exam for Linux/amd64; require SERVER, EXAM_USER"
@echo " and EXAM_PWD environment variables. The last two define"
@echo " credentials for the user used by nexus-exam to connect to"
@echo " nexus server"
@echo " clean_clients Delete all generated client binaries"
@echo ""
@echo "┌──────────────────────────────────────────────────────────────────────────────┐"
......@@ -277,7 +270,6 @@ help_client:
@echo "└──────────────────────────────────────────────────────────────────────────────┘"
@echo " run_nexush Run nexush for Linux/amd64; require LOGIN variable"
@echo " Example: make run_nexush LOGIN=janedoe@nexus.org"
@echo " run_nexus-exam Run nexus-exam"
@echo ""
@echo "┌──────────────────────────────────────────────────────────────────────────────┐"
@echo "│ VALIDATION tests │"
......@@ -321,27 +313,15 @@ build_nexus-cli: check_server_var copy_resources_client $(BUILD_DIR) $(SRC_CLIEN
@echo "[Building nexus-cli into $(BUILD_DIR) directory]"
@cd $(SRC_CLIENT)/nexus-cli && go build $(BUILD_FLAGS) $(BUILD_CLIENT_FLAGS) && mv $(NEXUSCLI_BINARY) $(BUILD_DIR_ABS)
build_nexus-exam: check_server_var check_nexus_exam_vars copy_resources_client $(BUILD_DIR) $(SRC_CLIENT)/nexus-exam
@echo "[Building nexus-exam into $(BUILD_DIR) directory]"
@echo -n '$(value EXAM_USER)' > $(NEXUS_EXAM_USER_CREDS_FILE)
@echo -n '$(value EXAM_PWD)' > $(NEXUS_EXAM_PWD_CREDS_FILE)
@cd $(SRC_CLIENT)/nexus-exam && go build $(BUILD_FLAGS) $(BUILD_CLIENT_FLAGS) && mv $(NEXUS_EXAM_BINARY) $(BUILD_DIR_ABS)
@strip -s $(BUILD_DIR)/$(NEXUS_EXAM_BINARY)
# @upx -q $(BUILD_DIR)/$(NEXUS_EXAM_BINARY)
@/bin/rm -f $(NEXUS_EXAM_USER_CREDS_FILE) $(NEXUS_EXAM_PWD_CREDS_FILE)
clean_clients:
@for arch in $(ARCHES_CLIENT); do \
/bin/rm -rf $(BUILD_DIR)/$$arch ;\
done
@/bin/rm -f $(BUILD_DIR)/$(NEXUSH_BINARY) $(BUILD_DIR)/$(NEXUSCLI_BINARY) $(BUILD_DIR)/$(NEXUS_EXAM_BINARY)
@/bin/rm -f $(BUILD_DIR)/$(NEXUSH_BINARY) $(BUILD_DIR)/$(NEXUSCLI_BINARY)
run_nexush: check_login_var $(BUILD_DIR)/$(NEXUSH_BINARY)
$< $(LOGIN)
run_nexus-exam: $(BUILD_DIR)/$(NEXUS_EXAM_BINARY)
$<
tests: check_login_var tests/run_tests build_nexus-cli $(BUILD_DIR)/$(NEXUSCLI_BINARY)
@cd tests && ./run_tests $< $(LOGIN)
......
......@@ -2,6 +2,8 @@ module gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/client
go 1.22.2
replace gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient => ../libclient
require (
fyne.io/fyne/v2 v2.5.5
gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/common v0.0.0-20250320135605-9ac7ec3df57a
......@@ -52,5 +54,3 @@ require (
golang.org/x/text v0.21.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
replace gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient => gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient v0.0.0-20250325115531-fc53ae2d0c18
......@@ -43,8 +43,6 @@ fyne.io/systray v1.11.0 h1:D9HISlxSkx+jHSniMBR6fCFOUjk1x/OOOJLa9lJYAKg=
fyne.io/systray v1.11.0/go.mod h1:RVwqP9nYMo7h5zViCBHri2FgjXF7H2cub7MAq4NSoLs=
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-20250325115531-fc53ae2d0c18 h1:MV9+ZMxGrFaidVw9FYWaif6pkdLSSvnuWYljPDH1kVA=
gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient v0.0.0-20250325115531-fc53ae2d0c18/go.mod h1:FTufL1WbpOEXB509PnsxzFFrYBx2RRSidxAqdDYZgGM=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0=
github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
......
# ------------------------------------
# Common variables
# ------------------------------------
CURRENT_DATE=$(shell eval "date -u +'%Y-%m-%d at %H:%M:%S'")
GIT_COMMIT=$(shell eval "git rev-parse HEAD")
BUILD_FLAGS=-ldflags="-X 'gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/common/buildversion.buildDate=$(CURRENT_DATE)' -X 'gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/common/buildversion.gitCommit=$(GIT_COMMIT)'"
BUILD_DIR=build
BUILD_DIR_ABS=$(PWD)/$(BUILD_DIR)
NEXUSH_BINARY=nexush
NEXUSCLI_BINARY=nexus-cli
NEXUS_EXAM_BINARY=nexus-exam
GENPWD_BINARY=genpwd
BUILD_CLIENT_FLAGS=-buildvcs=false
# To force a full recompile:
# BUILD_FLAGS=build -a
# These resource files MUST match what's defined in the go code!
SERVER_FILE=$(BUILD_DIR)/server
NEXUS_EXAM_USER_CREDS_FILE=$(BUILD_DIR)/nexus_exam_user.val
NEXUS_EXAM_PWD_CREDS_FILE=$(BUILD_DIR)/nexus_exam_pwd.val
#-------------------------------------------------------------------------
# Obscure code that checks whether a variable is defined at runtime.
# This function overcomes the limitation of #ifndef ... which is always
# parsed by make regardess of the target it's called from.
#
# Usage: $(call check_defined, some_variable_to_test)
check_defined = \
$(strip $(foreach 1,$1, \
$(call __check_defined,$1,$(strip $(value 2)))))
__check_defined = \
$(if $(value $1),, \
$(error Environment variable $1$(if $2, ($2)) must be set))
help:
@echo "Available targets:"
@echo ""
@echo "build Build nexus-exam for Linux/amd64; require SERVER, EXAM_USER and"
@echo " EXAM_PWD environment variables."
@echo " SERVER specifies server ip address and port, separated by a colon,"
@echo " e.g. SERVER=127.0.0.1:1077"
@echo " EXAM_USER and EXAM_PWD define credentials for the user used by"
@echo " nexus-exam to connect to nexus server."
@echo ""
@echo "clean Delete generated binary"
@echo ""
@echo "run Run nexus-exam"
check_server_var:
$(call check_defined, SERVER)
check_nexus_exam_vars:
$(call check_defined, EXAM_USER)
$(call check_defined, EXAM_PWD)
$(BUILD_DIR): check_server_var check_nexus_exam_vars
@mkdir -p $@
@echo "[Creating resources]"
@echo -n "$(SERVER)" > $(SERVER_FILE)
@echo -n '$(value EXAM_USER)' > $(NEXUS_EXAM_USER_CREDS_FILE)
@echo -n '$(value EXAM_PWD)' > $(NEXUS_EXAM_PWD_CREDS_FILE)
@echo "OK"
@echo "[Building nexus-exam into $(BUILD_DIR) directory]"
go build $(BUILD_FLAGS) $(BUILD_CLIENT_FLAGS) -o $(BUILD_DIR)/$(NEXUS_EXAM_BINARY)
@strip -s $(BUILD_DIR)/$(NEXUS_EXAM_BINARY)
@echo "OK"
# @upx -q $(NEXUS_EXAM_BINARY)
@echo "[Deleting resources]"
@/bin/rm -f $(SERVER_FILE) $(NEXUS_EXAM_USER_CREDS_FILE) $(NEXUS_EXAM_PWD_CREDS_FILE)
@echo "OK"
clean:
@/bin/rm -rf $(BUILD_DIR)
@echo "OK"
run: $(BUILD_DIR)/$(NEXUS_EXAM_BINARY)
$<
.PHONY: clean
# To build a static executable:
# CGO_ENABLED=0 go build $(BUILD_FLAGS)
# @echo " build_client build $(BIN) binaries for the specified OS/architecture"
# @echo " valid OS values: linux, windows, darwin"
# @echo " valid ARCH values: amd64, arm64, 386"
# build_dir_client_arch_os:
# $(if $(OS),,$(error Please define the OS environment variable: supported values are linux, windows, darwin))
# $(if $(ARCH),,$(error Please define the ARCH environment variable: supported values are amd64, arm64, 386))
# @mkdir -p $(BUILD_DIR)/$(ARCH)/$(OS)
# build_client: check_bin_var build_dir_client_arch_os copy_resources_client
# @echo "[Building client into $(BUILD_DIR)] directory"
# @echo "[Building for $(OS) $(ARCH)]" ;\
# if [ $(OS) = "linux" ]; then \
# cd $(SRC_ABS_CLIENT)/$(BIN) ;\
# go clean . ;\
# GOARCH=$(ARCH) GOOS=$(OS) CGO_ENABLED=0 go $(BUILD_FLAGS) -o $(BUILD_DIR_ABS)/$(ARCH)/$(OS)/ ;\
# #strip -s $(BUILD_DIR_ABS)/$(ARCH)/$(OS)/$(BIN) ;\
# #upx $(BUILD_DIR_ABS)/$(ARCH)/$(OS)/$(BIN) ;\
# else \
# GOARCH=$(ARCH) GOOS=$(OS) go $(BUILD_FLAGS) -o $(BUILD_DIR_ABS)/$(ARCH)/$(OS)/ ;\
# fi
# To list all supported platforms:
# go tool dist list
# To display current OS and arch:
# go env GOOS GOARCH
module gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/nexus-exam
replace gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient => ../libclient
go 1.22.2
require (
fyne.io/fyne/v2 v2.5.5
gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/client v0.0.0-20250320135605-9ac7ec3df57a
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-20250320133059-1f3e69fbd8f8
)
require (
fyne.io/systray v1.11.0 // indirect
github.com/BurntSushi/toml v1.4.0 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/fredbi/uri v1.1.0 // indirect
github.com/fsnotify/fsnotify v1.8.0 // indirect
github.com/fyne-io/gl-js v0.0.0-20230506162202-1fdaa286a934 // indirect
github.com/fyne-io/glfw-js v0.0.0-20241126112943-313d8a0fe1d0 // indirect
github.com/fyne-io/image v0.0.0-20240417123036-dc0ee9e7c964 // indirect
github.com/gabriel-vasile/mimetype v1.4.8 // indirect
github.com/go-gl/gl v0.0.0-20231021071112-07e5d0ea2e71 // indirect
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20240506104042-037f3cc74f2a // indirect
github.com/go-playground/locales v0.14.1 // indirect
github.com/go-playground/universal-translator v0.18.1 // indirect
github.com/go-playground/validator/v10 v10.25.0 // indirect
github.com/go-resty/resty/v2 v2.16.5 // indirect
github.com/go-text/render v0.2.0 // indirect
github.com/go-text/typesetting v0.2.1 // indirect
github.com/godbus/dbus/v5 v5.1.0 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/gopherjs/gopherjs v1.17.2 // indirect
github.com/jeandeaual/go-locale v0.0.0-20241217141322-fcc2cadd6f08 // indirect
github.com/jsummers/gobmp v0.0.0-20230614200233-a9de23ed2e25 // indirect
github.com/leodido/go-urn v1.4.0 // indirect
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 // indirect
github.com/nicksnyder/go-i18n/v2 v2.4.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/rymdport/portal v0.3.0 // indirect
github.com/srwiley/oksvg v0.0.0-20221011165216-be6e8873101c // indirect
github.com/srwiley/rasterx v0.0.0-20220730225603-2ab79fcdd4ef // indirect
github.com/stretchr/testify v1.10.0 // indirect
github.com/yuin/goldmark v1.7.8 // indirect
golang.org/x/crypto v0.32.0 // indirect
golang.org/x/image v0.23.0 // indirect
golang.org/x/mobile v0.0.0-20250106192035-c31d5b91ecc3 // indirect
golang.org/x/net v0.34.0 // indirect
golang.org/x/sys v0.29.0 // indirect
golang.org/x/text v0.21.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
This diff is collapsed.
......@@ -14,7 +14,6 @@ import (
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/theme"
"fyne.io/fyne/v2/widget"
"gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/client/defaults"
u "gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/client/utils"
"gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/common/buildversion"
nc "gitedu.hesge.ch/flg_projects/nexus_vdi/nexus/libclient/nexusclient"
......@@ -27,10 +26,13 @@ const (
)
var (
//go:embed nexus_exam_user.val
//go:embed build/server
nexus_server string
//go:embed build/nexus_exam_user.val
nexus_exam_user string
//go:embed nexus_exam_pwd.val
//go:embed build/nexus_exam_pwd.val
nexus_exam_pwd string
client *nc.NexusClient
......@@ -158,7 +160,7 @@ func run() int {
hypervisorCheck()
var err error
client, err = nc.New(defaults.NexusServer)
client, err = nc.New(nexus_server)
if err != nil {
abortWindow(err.Error())
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment