Makefile 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. BIN := venv/bin/activate
  2. PYTHON := python
  3. LOG_HOME := $(shell echo ~/.local/share/darkfi/explorer_site)
  4. help:
  5. @echo "Explorer Site Makefile Commands:"
  6. @echo ""
  7. @echo "Installation and cleanup:"
  8. @echo " make install - Install Python dependencies in a virtual environment"
  9. @echo " make clean - Remove the virtual environment and installed dependencies"
  10. @echo ""
  11. @echo "Server management:"
  12. @echo " make start-localnet - Start explorer site on localnet environment"
  13. @echo " make start-testnet - Start explorer site on testnet environment"
  14. @echo " make start-mainnet - Start explorer site on mainnet environment"
  15. @echo " make stop - Stop running explorer site"
  16. install: $(BIN)
  17. # Create the virtual environment and install dependencies
  18. $(BIN): requirements.txt
  19. @echo "Installing dependencies..."
  20. @if [ ! -d venv ]; then \
  21. $(PYTHON) -m venv venv; \
  22. fi; \
  23. . venv/bin/activate && pip install -r requirements.txt
  24. # Remove virtual environment
  25. clean:
  26. @rm -rf venv
  27. @echo "Cleaned the virtual environment!"
  28. # Start the Flask server for the specified network (localnet, testnet, mainnet)
  29. start-%: install
  30. @if [ "$*" != "localnet" ] && [ "$*" != "testnet" ] && [ "$*" != "mainnet" ]; then \
  31. echo "Error: Unsupported environment '$*'. Supported values are 'localnet', 'testnet', and 'mainnet'."; \
  32. exit 1; \
  33. fi
  34. @if [ -f flask.pid ]; then \
  35. echo "Explorer site is already running (PID=$$(cat flask.pid)). Stop it first before starting."; \
  36. exit 1; \
  37. fi
  38. @. venv/bin/activate && \
  39. FLASK_ENV=$* python -m flask run & PID=$$!; \
  40. echo $$PID > flask.pid; \
  41. echo "Started explorer site on $* network (PID=$$PID)"
  42. @if [ "$*" = "testnet" ]; then \
  43. echo "See site logfile $(LOG_HOME)/testnet/app.log for server startup details"; \
  44. fi
  45. @if [ "$*" = "mainnet" ]; then \
  46. echo "See site logfile $(LOG_HOME)/mainnet/app.log for server startup details"; \
  47. fi
  48. # Stop the explorer site if running
  49. stop:
  50. @if [ -f flask.pid ]; then \
  51. PID=$$(cat flask.pid); \
  52. kill $$PID; \
  53. rm -f flask.pid; \
  54. echo "Stopped explorer site"; \
  55. else \
  56. if [ "$(suppress_not_running)" != "1" ]; then \
  57. echo "Explorer site is not running, nothing to stop."; \
  58. fi; \
  59. fi
  60. # Declare PHONY targets
  61. .PHONY: all start-% install clean stop-server