# Define the addon directory, build directory, and zip file name ADDON_DIR = plugin.video.mediafusion REPO_DIR = repository.mediafusion BUILD_DIR = build DIST_DIR = dist VERSION := $(shell sed -ne "s/.*version=\"\([0-9a-z\.\-]*\)\"\sname=.*/\1/p" $(ADDON_DIR)/addon.xml) RANDOM_STRING = $(shell head /dev/urandom | tr -dc A-Za-z0-9 | head -c 8) NEW_VERSION := $(VERSION)-$(RANDOM_STRING) ZIP_FILE := $(ADDON_DIR)-$(VERSION).zip DEV_ZIP_FILE := $(ADDON_DIR)-dev-$(NEW_VERSION).zip REPO_ZIP_FILE := $(REPO_DIR)-$(VERSION).zip # Default target all: $(ZIP_FILE) repository # Create the plugin zip file $(ZIP_FILE): install_dependencies @echo "Creating zip file for $(ADDON_DIR)..." @cd build && zip -r ../$(ZIP_FILE) $(ADDON_DIR) @echo "Zip file created: $(ZIP_FILE)" # Install dependencies install_dependencies: prepare_build @echo "Installing dependencies..." @pip install -r requirements.txt -t $(BUILD_DIR)/$(ADDON_DIR)/lib # Prepare build directory prepare_build: clean @echo "Preparing build directory..." @mkdir -p $(BUILD_DIR)/$(ADDON_DIR) @mkdir -p $(BUILD_DIR)/$(REPO_DIR) @mkdir -p $(DIST_DIR)/$(ADDON_DIR) @mkdir -p $(DIST_DIR)/$(REPO_DIR) @cp -r $(ADDON_DIR)/* $(BUILD_DIR)/$(ADDON_DIR) # Repository setup repository: $(ZIP_FILE) @echo "Setting up repository..." @cp -r $(REPO_DIR)/* $(BUILD_DIR)/$(REPO_DIR) @cd $(BUILD_DIR) && zip -r ../$(REPO_ZIP_FILE) $(REPO_DIR) # Copy files to dist structure @cp $(ZIP_FILE) $(DIST_DIR)/$(ADDON_DIR)/ @cp $(ADDON_DIR)/addon.xml $(DIST_DIR)/$(ADDON_DIR)/ @cp $(REPO_ZIP_FILE) $(DIST_DIR)/$(REPO_DIR)/ @cp $(REPO_DIR)/addon.xml $(DIST_DIR)/$(REPO_DIR)/ @cp $(REPO_ZIP_FILE) $(DIST_DIR)/ @rm -rf $(BUILD_DIR) $(ZIP_FILE) $(REPO_ZIP_FILE) # Create index.html @echo "" > $(DIST_DIR)/index.html @echo "$(REPO_ZIP_FILE)" >> $(DIST_DIR)/index.html @echo "$(REPO_DIR)/$(REPO_ZIP_FILE)" >> $(DIST_DIR)/index.html # Generate repository files @python3 generate_repository.py # Clean up generated files clean: @echo "Cleaning up..." @rm -rf $(ADDON_DIR)-*.zip build dist @rm -rf $(HOME)/Downloads/$(ADDON_DIR)-*.zip # Dev target dev: $(DEV_ZIP_FILE) # Create the dev zip file $(DEV_ZIP_FILE): install_dev_dependencies @echo "Creating dev zip file for $(ADDON_DIR)..." @cd build && zip -r ../$(DEV_ZIP_FILE) $(ADDON_DIR) @echo "Dev zip file created: $(DEV_ZIP_FILE)" @cp -f $(DEV_ZIP_FILE) $(HOME)/Downloads/$(DEV_ZIP_FILE) @echo "Dev zip file copied to $(HOME)/Downloads/$(DEV_ZIP_FILE)" # Install dev dependencies install_dev_dependencies: prepare_build @echo "Installing dev dependencies..." @pip install -r requirements.txt -t $(BUILD_DIR)/$(ADDON_DIR)/lib @pip install -r dev-requirements.txt -t $(BUILD_DIR)/$(ADDON_DIR)/lib # Phony targets .PHONY: all clean dev install_dependencies install_dev_dependencies repository prepare_build