#!/usr/bin/make -f

DIR := debian/tmp
VYOS_SBIN_DIR := usr/sbin
VYOS_BIN_DIR := usr/bin
VYOS_LIBEXEC_DIR := usr/libexec/vyos
VYOS_DATA_DIR := usr/share/vyos
VYOS_CFG_TMPL_DIR := opt/vyatta/share/vyatta-cfg/templates
VYOS_OP_TMPL_DIR := opt/vyatta/share/vyatta-op/templates

MIGRATION_SCRIPTS_DIR := opt/vyatta/etc/config-migrate/migrate
SYSTEM_SCRIPTS_DIR := usr/libexec/vyos/system
SERVICES_DIR := usr/libexec/vyos/services

%:
	dh $@ --with python3, --with quilt

override_dh_gencontrol:
	dh_gencontrol -- -v$(shell (git describe --tags --long --match 'vyos/*' --dirty 2>/dev/null || echo 0.0-no.git.tag) | sed -E 's%vyos/%%' | sed -E 's%-dirty%+dirty%')

override_dh_auto_build:
	make all

override_dh_auto_install:
	dh_auto_install

	# convert the XML to dictionaries
	env PYTHONPATH=python python3 python/vyos/xml/generate.py

	cd python; python3 setup.py install --install-layout=deb --root ../$(DIR); cd ..

	# Install scripts
	mkdir -p $(DIR)/$(VYOS_SBIN_DIR)
	mkdir -p $(DIR)/$(VYOS_BIN_DIR)
	cp -r src/utils/* $(DIR)/$(VYOS_BIN_DIR)
	cp src/shim/vyshim $(DIR)/$(VYOS_SBIN_DIR)

	# Install conf mode scripts
	mkdir -p $(DIR)/$(VYOS_LIBEXEC_DIR)/conf_mode
	cp -r src/conf_mode/* $(DIR)/$(VYOS_LIBEXEC_DIR)/conf_mode

	# Install op mode scripts
	mkdir -p $(DIR)/$(VYOS_LIBEXEC_DIR)/op_mode
	cp -r src/op_mode/* $(DIR)/$(VYOS_LIBEXEC_DIR)/op_mode

	# Install validators
	mkdir -p $(DIR)/$(VYOS_LIBEXEC_DIR)/validators
	cp -r src/validators/* $(DIR)/$(VYOS_LIBEXEC_DIR)/validators

	# Install completion helpers
	mkdir -p $(DIR)/$(VYOS_LIBEXEC_DIR)/completion
	cp -r src/completion/* $(DIR)/$(VYOS_LIBEXEC_DIR)/completion

	# Install helper scripts
	cp -r src/helpers/* $(DIR)/$(VYOS_LIBEXEC_DIR)/

	# Install migration scripts
	mkdir -p $(DIR)/$(MIGRATION_SCRIPTS_DIR)
	cp -r src/migration-scripts/* $(DIR)/$(MIGRATION_SCRIPTS_DIR)

	# Install system scripts
	mkdir -p $(DIR)/$(SYSTEM_SCRIPTS_DIR)
	cp -r src/system/* $(DIR)/$(SYSTEM_SCRIPTS_DIR)

	# Install system services
	mkdir -p $(DIR)/$(SERVICES_DIR)
	cp -r src/services/* $(DIR)/$(SERVICES_DIR)

	# Install configuration command definitions
	mkdir -p $(DIR)/$(VYOS_CFG_TMPL_DIR)
	cp -r templates-cfg/* $(DIR)/$(VYOS_CFG_TMPL_DIR)

	# Install operational command definitions
	mkdir -p $(DIR)/$(VYOS_OP_TMPL_DIR)
	cp -r templates-op/* $(DIR)/$(VYOS_OP_TMPL_DIR)

	# Install data files
	mkdir -p $(DIR)/$(VYOS_DATA_DIR)
	cp -r data/* $(DIR)/$(VYOS_DATA_DIR)

	# Install etc configuration files
	mkdir -p $(DIR)/etc
	cp -r src/etc/* $(DIR)/etc

	# Install PAM configuration snippets
	mkdir -p $(DIR)/usr/share/pam-configs
	cp -r src/pam-configs/* $(DIR)/usr/share/pam-configs

	# Install systemd service units
	mkdir -p $(DIR)/lib/systemd/system
	cp -r src/systemd/* $(DIR)/lib/systemd/system

	# Make directory for generated configuration file
	mkdir -p $(DIR)/etc/vyos

	# Install smoke test scripts
	mkdir -p $(DIR)/$(VYOS_LIBEXEC_DIR)/tests/smoke/
	cp -r smoketest/scripts/* $(DIR)/$(VYOS_LIBEXEC_DIR)/tests/smoke

	# Install system programs
	mkdir -p $(DIR)/$(VYOS_BIN_DIR)
	cp -r smoketest/bin/* $(DIR)/$(VYOS_BIN_DIR)