From e57a029b93bd71c58bb42fbc14d8eb4dca97c005 Mon Sep 17 00:00:00 2001 From: Zsolt Tasnadi Date: Sat, 28 Feb 2026 11:58:11 +0100 Subject: [PATCH] initial commit --- .gitignore | 22 +++++++++ .woodpecker.yaml | 64 +++++++++++++++++++++++++ Makefile | 121 +++++++++++++++++++++++++++++++++++++++++++++++ conf.lua | 9 ++++ main.lua | 9 ++++ 5 files changed, 225 insertions(+) create mode 100644 .gitignore create mode 100644 .woodpecker.yaml create mode 100644 Makefile create mode 100644 conf.lua create mode 100644 main.lua diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..03a0a40 --- /dev/null +++ b/.gitignore @@ -0,0 +1,22 @@ +# Build output +bin/ +dist/ +*.zip +*.love +*.metadata.json + +# Version file +.version + +# OS +.DS_Store +Thumbs.db + +# Editor +.vscode/ +.idea/ +*.swp +*.swo + +# Lua +luac.out diff --git a/.woodpecker.yaml b/.woodpecker.yaml new file mode 100644 index 0000000..da43096 --- /dev/null +++ b/.woodpecker.yaml @@ -0,0 +1,64 @@ +steps: + - name: version + image: alpine + commands: + - apk add --no-cache git make jq + - make ci-version + + - name: export + image: alpine + commands: + - apk add --no-cache zip make + - make ci-export + + - name: export-web + image: alpine + commands: + - apk add --no-cache zip make curl unzip + - make ci-export-web + + - name: upload + image: alpine + environment: + DROPAREA_HOST: vps.teletype.hu + DROPAREA_PORT: 2223 + DROPAREA_TARGET_PATH: /home/drop + DROPAREA_USER: drop + DROPAREA_SSH_PASSWORD: + from_secret: droparea_ssh_password + commands: + - apk add --no-cache make openssh-client sshpass + - make ci-upload + + - name: upload-web + image: alpine + environment: + DROPAREA_HOST: vps.teletype.hu + DROPAREA_PORT: 2223 + DROPAREA_TARGET_PATH: /home/drop + DROPAREA_USER: drop + DROPAREA_SSH_PASSWORD: + from_secret: droparea_ssh_password + commands: + - apk add --no-cache make openssh-client sshpass + - make ci-upload-web + + - name: update + image: alpine + environment: + UPDATE_SERVER: https://games.vps.teletype.hu + UPDATE_SECRET: + from_secret: update_secret_key + commands: + - apk add --no-cache make curl + - make ci-update + + - name: update-web + image: alpine + environment: + UPDATE_SERVER: https://games.vps.teletype.hu + UPDATE_SECRET: + from_secret: update_secret_key + commands: + - apk add --no-cache make curl + - make ci-update-web \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1c4452a --- /dev/null +++ b/Makefile @@ -0,0 +1,121 @@ +# ----------------------------------------- +# Makefile – Love2D project builder +# ----------------------------------------- + +PROJECT = love2ddemo + +BIN_DIR = bin +DIST_DIR = dist +WEB_DIR = $(DIST_DIR)/web +LOVE_NAME = $(PROJECT).love +OUTPUT_LOVE = $(DIST_DIR)/$(LOVE_NAME) +OUTPUT_ZIP = $(PROJECT)-$(VERSION).love.zip +OUTPUT_WEB_ZIP = $(PROJECT)-$(VERSION).html.zip + +VERSION_FILE = .version + +LOVEJS_URL = https://github.com/Davidobot/love.js/releases/latest/download/love.js.zip + +all: build + +build: + @mkdir -p $(BIN_DIR) + @echo "==> Checking Love2D syntax" + luac -p *.lua 2>/dev/null || true + +love: + @mkdir -p $(DIST_DIR) + @echo "==> Building .love package" + zip -r $(OUTPUT_LOVE) . \ + --exclude "*.git*" \ + --exclude "$(BIN_DIR)/*" \ + --exclude "$(DIST_DIR)/*" \ + --exclude "Makefile" \ + --exclude ".version" \ + --exclude "metadata.json" \ + --exclude "*.zip" + +web: love + @mkdir -p $(WEB_DIR) + @echo "==> Downloading love.js" + curl -sSL $(LOVEJS_URL) -o $(DIST_DIR)/lovejs.zip + unzip -o $(DIST_DIR)/lovejs.zip -d $(WEB_DIR) + rm -f $(DIST_DIR)/lovejs.zip + @echo "==> Copying .love into web bundle" + cp $(OUTPUT_LOVE) $(WEB_DIR)/game.love + +export: love + @if [ -z "$(VERSION)" ]; then \ + echo "ERROR: VERSION not set!"; exit 1; \ + fi + @echo "==> Packaging Love2D for $(VERSION)" + zip -r $(OUTPUT_ZIP) $(OUTPUT_LOVE) + @echo "==> Cleaning temporary files" + rm -f $(OUTPUT_LOVE) + +export-web: web + @if [ -z "$(VERSION)" ]; then \ + echo "ERROR: VERSION not set!"; exit 1; \ + fi + @echo "==> Packaging web build for $(VERSION)" + zip -r $(OUTPUT_WEB_ZIP) -j $(WEB_DIR) + @echo "==> Cleaning temporary files" + rm -rf $(WEB_DIR) + rm -f $(OUTPUT_LOVE) + +watch: + fswatch -o . --include="\.lua$$" | while read; do make build; done + +clean: + rm -rf $(BIN_DIR) $(DIST_DIR) + +ci-version: + @if [ -f metadata.json ]; then \ + VERSION=$$(jq -r '.version' metadata.json); \ + else \ + VERSION=$$(git rev-parse --short HEAD); \ + fi; \ + BRANCH=$$(git rev-parse --abbrev-ref HEAD); \ + if [ "$$BRANCH" != "main" ] && [ "$$BRANCH" != "master" ]; then \ + VERSION="dev-$$VERSION-$$BRANCH"; \ + fi; \ + echo $$VERSION > $(VERSION_FILE) + +ci-export: + @VERSION=$$(cat $(VERSION_FILE)); \ + $(MAKE) export VERSION=$$VERSION + +ci-export-web: + @VERSION=$$(cat $(VERSION_FILE)); \ + $(MAKE) export-web VERSION=$$VERSION + +ci-upload: + @VERSION=$$(cat $(VERSION_FILE)); \ + FILE="$(PROJECT)-$$VERSION.love.zip"; \ + META_SRC="metadata.json"; \ + META_DST="$(PROJECT)-$$VERSION.metadata.json"; \ + cp $$META_SRC $$META_DST; \ + sshpass -p "$(DROPAREA_SSH_PASSWORD)" scp -o StrictHostKeyChecking=no -P $(DROPAREA_PORT) \ + $$FILE $$META_DST \ + $(DROPAREA_USER)@$(DROPAREA_HOST):$(DROPAREA_TARGET_PATH)/ + +ci-upload-web: + @VERSION=$$(cat $(VERSION_FILE)); \ + FILE="$(PROJECT)-$$VERSION.html.zip"; \ + META_SRC="metadata.json"; \ + META_DST="$(PROJECT)-$$VERSION.metadata.json"; \ + cp $$META_SRC $$META_DST; \ + sshpass -p "$(DROPAREA_SSH_PASSWORD)" scp -o StrictHostKeyChecking=no -P $(DROPAREA_PORT) \ + $$FILE $$META_DST \ + $(DROPAREA_USER)@$(DROPAREA_HOST):$(DROPAREA_TARGET_PATH)/ + +ci-update: + @VERSION=$$(cat $(VERSION_FILE)); \ + curl "$(UPDATE_SERVER)/update?secret=$(UPDATE_SECRET)&name=$(PROJECT)&platform=love2d&version=$$VERSION" + +ci-update-web: + @VERSION=$$(cat $(VERSION_FILE)); \ + curl "$(UPDATE_SERVER)/update?secret=$(UPDATE_SECRET)&name=$(PROJECT)&platform=love2d-web&version=$$VERSION" + +.PHONY: all build love web export export-web watch clean \ + ci-version ci-export ci-export-web ci-upload ci-upload-web ci-update ci-update-web \ No newline at end of file diff --git a/conf.lua b/conf.lua new file mode 100644 index 0000000..ca2cd45 --- /dev/null +++ b/conf.lua @@ -0,0 +1,9 @@ +-- conf.lua + +function love.conf(t) + t.identity = "teletype-games" + t.version = "11.5" -- minimálisan szükséges Love2D verzió + t.window.title = "Teletype Games" + t.window.width = 800 + t.window.height = 600 +end diff --git a/main.lua b/main.lua new file mode 100644 index 0000000..15d112b --- /dev/null +++ b/main.lua @@ -0,0 +1,9 @@ +-- main.lua + +function love.load() + love.window.setTitle("Teletype Games") +end + +function love.draw() + love.graphics.printf("Teletype Games", 0, love.graphics.getHeight() / 2 - 12, love.graphics.getWidth(), "center") +end