diff --git a/src/makefile b/src/makefile deleted file mode 100644 index 41104ef17bbe49ca94b9b17a89739733c9844306..0000000000000000000000000000000000000000 --- a/src/makefile +++ /dev/null @@ -1,30 +0,0 @@ -# Server Setup -SERVER_USER := user -SERVER_HOST := host -CONDA_PATH := /opt/conda -CONDA_ENV := base - -# Project Directories -REMOTE_PATH := /path/to/server/code -LOCAL_PATH := /path/to/client/code - -# Output Directory -OUTPUT_DIR := output - -# Files -MAIN_SCRIPT := main.py -LOG_FILE := logfile.log - -.PHONY: push exec status pull - -push: - rsync -a $(LOCAL_PATH) $(SERVER_USER)@$(SERVER_HOST):$(REMOTE_PATH) - -exec: - ssh $(SERVER_USER)@$(SERVER_HOST) 'cd $(REMOTE_PATH) && conda run -n $(CONDA_ENV) python $(MAIN_SCRIPT)' - -status: - ssh $(SERVER_USER)@$(SERVER_HOST) 'cd $(REMOTE_PATH) && tail -n 10 $(LOG_FILE)' - -pull: - rsync -a $(SERVER_USER)@$(SERVER_HOST):$(REMOTE_PATH)/$(OUTPUT_DIR) $(LOCAL_PATH) diff --git a/src/makefile/makefile b/src/makefile/makefile new file mode 100644 index 0000000000000000000000000000000000000000..9c61df6794add33b87fde5177885acdddd485960 --- /dev/null +++ b/src/makefile/makefile @@ -0,0 +1,62 @@ +# Configuration + +## Server +SERVER_USER := mmustermann +SERVER_HOST := hyrican-1-extern + +## Python Environment +CONDA_PATH := /home/$(SERVER_USER)/.local/opt/conda +CONDA_ENV := ml +PYTHON_VERSION := 3.10 +PYTHON_PACKAGES := tensorflow-cpu ipympl mypy jupyter pystan \ + matplotlib seaborn scikit-learn openpyxl odfpy pyarrow \ + geopandas descartes pyogrio optuna plotly tqdm spyder \ + jax-jumpy moviepy shimmy-atari gymnasium-box2d \ + ipywidgets notebook lxml fastparquet zstandard \ + contextily networkx pyvis netgraph pip + +## Project Files +MAIN_SCRIPT := main.py +LOG_FILE := progress.log + +## Local Project Paths +LOCAL_PROJECT_DIR := . +LOCAL_OUTPUT_DIR := output + +## Remote Project Paths +REMOTE_PROJECT_DIR := /home/$(SERVER_USER)/my_project +REMOTE_OUTPUT_FILES := output/* + +# --- + +LOGIN := $(SERVER_USER)@$(SERVER_HOST) +SSH := ssh $(LOGIN) +RSYNC := rsync --archive --compress --progress +CONDA := source $(CONDA_PATH)/etc/profile.d/conda.sh && conda + +.PHONY: install upload run kill log download delete + +help: # list targets and usage + @awk '/^[a-zA-Z0-9_-]+:/{print $1}' makefile + +install: # install conda environment + $(SSH) '$(CONDA) create -n $(CONDA_ENV) python=$(PYTHON_VERSION) $(PYTHON_PACKAGES)' + +upload: # upload project files from client to server + $(SSH) 'mkdir -p $(REMOTE_PROJECT_DIR)' + $(RSYNC) $(LOCAL_PROJECT_DIR)/ $(LOGIN):$(REMOTE_PROJECT_DIR) + +run: # execute main script on server + $(SSH) 'cd $(REMOTE_PROJECT_DIR) && $(CONDA) run -n $(CONDA_ENV) python $(MAIN_SCRIPT)' + +kill: # terminate the running script on the server + $(SSH) 'pkill -f $(MAIN_SCRIPT)' + +log: # show the last lines of the log file + $(SSH) 'cd $(REMOTE_PROJECT_DIR) && less $(LOG_FILE)' + +download: # download output files from server to client + $(RSYNC) $(LOGIN):$(REMOTE_PROJECT_DIR)/$(REMOTE_OUTPUT_FILES) $(LOCAL_PROJECT_DIR)/$(LOCAL_OUTPUT_DIR) + +delete: # remove/delete all project files on server + $(SSH) 'rm -rf $(REMOTE_PROJECT_DIR)'