From defd5fc8b35210c2387602879e304380b30c1ae7 Mon Sep 17 00:00:00 2001 From: rattatwinko Date: Wed, 28 May 2025 14:03:44 +0200 Subject: [PATCH] gayporn --- .gitattributes | 3 + .gitea/workflows/maven_build.yaml | 57 +++ build.sh | 18 + pommer.py | 591 ++++++++++++++++++++++++++++++ snapshot_20250527_161519.jpg | Bin 31023 -> 0 bytes 5 files changed, 669 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitea/workflows/maven_build.yaml create mode 100755 build.sh create mode 100644 pommer.py delete mode 100644 snapshot_20250527_161519.jpg diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..6eb0195 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +# Exclude Python and Shell files from linguist language statistics +*.py linguist-detectable=false +*.sh linguist-detectable=false \ No newline at end of file diff --git a/.gitea/workflows/maven_build.yaml b/.gitea/workflows/maven_build.yaml new file mode 100644 index 0000000..cb19cae --- /dev/null +++ b/.gitea/workflows/maven_build.yaml @@ -0,0 +1,57 @@ +name: Maven Build + +on: + push: + branches: [ main, master, dev ] + pull_request: + branches: [ main, master ] + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '17' + cache: 'maven' + + - name: Install Maven + run: | + if ! command -v mvn &> /dev/null; then + echo "Maven not found, installing..." + sudo apt-get update + sudo apt-get install -y maven + fi + mvn --version + + - name: Debug Info + run: | + echo "Current workspace directory: $GITHUB_WORKSPACE" + echo "Current directory: $(pwd)" + echo "Project structure:" + find . -type f -name "*.kt" | sort + find . -type f -name "pom.xml" + echo "Maven version: $(mvn --version)" + + - name: Build security-camera-app (security-camera-app) + run: | + echo "Building security-camera-app" + echo "Current directory: $(pwd)" + # Run Maven build directly using the POM file path + mvn -B clean package -f "./pom.xml" -Dmaven.compiler.failOnError=true + + - name: Upload security-camera-app artifact + uses: actions/upload-artifact@v3 + with: + name: security-camera-app + path: | + ./target/security-camera-app-*.jar + ./target/*.jar + if-no-files-found: warn diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..46b5cf7 --- /dev/null +++ b/build.sh @@ -0,0 +1,18 @@ +#!/bin/bash +# Universal build script for Maven and Gradle projects + +echo "Current directory: $(pwd)" + +# Check if Maven is installed +if ! command -v mvn &> /dev/null; then + echo "Maven not found, installing..." + sudo apt-get update + sudo apt-get install -y maven +fi + +echo "Maven version: $(mvn --version)" + +echo "Building Maven project: security-camera-app" +mvn clean package -f "./pom.xml" + +echo "Build complete. Build artifacts should be in their respective target/ or build/libs/ directories." diff --git a/pommer.py b/pommer.py new file mode 100644 index 0000000..745403d --- /dev/null +++ b/pommer.py @@ -0,0 +1,591 @@ +#!/usr/bin/env python3 + +""" +``` POMMER.PY ``` + +!:: THIS IS PROPRIETARY SOFTWARE DO NOT DISTRIBUTE TO OUTSIDERS ::! + +This Python File is distributed with every Kotlin / Java Plugin Repository! +If you find this to be confusing to use look at the Documentation in "rattatwinko/pommer" + +Run this Script with Python 3.11 ; 3.9 + +This works with Gradle and Maven ; other Branch is for reliablitiy ; this one is for "Support" with larger *commercial* Builds + + +!:: Maven Building with the Master Branch ( this Version ) is unstable! The Building Test is placed "rattatwinko/mavenprobe"!! ::! + +""" + +import os +import xml.etree.ElementTree as ET +import re +from pathlib import Path +import argparse +import glob +import json + + +def parse_pom_xml(pom_path): + """ + Parse a pom.xml file and extract relevant information + """ + try: + print(f"Parsing POM file: {pom_path}") + + # Register the default namespace + ET.register_namespace('', "http://maven.apache.org/POM/4.0.0") + + # Parse the XML file + tree = ET.parse(pom_path) + root = tree.getroot() + + # Define namespace for easier XPath queries + ns = {'mvn': "http://maven.apache.org/POM/4.0.0"} + + # Extract project info + artifact_id = root.find('./mvn:artifactId', ns).text + group_id = root.find('./mvn:groupId', ns).text if root.find('./mvn:groupId', ns) is not None else "unknown" + version = root.find('./mvn:version', ns).text if root.find('./mvn:version', ns) is not None else "unknown" + name = root.find('./mvn:name', ns).text if root.find('./mvn:name', ns) is not None else artifact_id + + # Extract Java version + java_version_elem = root.find('./mvn:properties/mvn:java.version', ns) + java_version = java_version_elem.text if java_version_elem is not None else "17" # Default to Java 17 if not specified + + # Extract packaging type (default to jar if not specified) + packaging = root.find('./mvn:packaging', ns) + packaging = packaging.text if packaging is not None else "jar" + + # Check if Kotlin is used + kotlin_version_elem = root.find('./mvn:properties/mvn:kotlin.version', ns) + kotlin_version = kotlin_version_elem.text if kotlin_version_elem is not None else None + + # Check for Kotlin plugin or dependency + kotlin_plugin = None + kotlin_dep = None + + # Check for Kotlin plugin + plugins = root.findall('.//mvn:plugin', ns) + for plugin in plugins: + plugin_group = plugin.find('./mvn:groupId', ns) + if plugin_group is not None and plugin_group.text == 'org.jetbrains.kotlin': + kotlin_plugin = plugin + break + + # Check for Kotlin dependency + deps = root.findall('.//mvn:dependency', ns) + for dep in deps: + dep_group = dep.find('./mvn:groupId', ns) + dep_artifact = dep.find('./mvn:artifactId', ns) + if (dep_group is not None and dep_group.text == 'org.jetbrains.kotlin' and + dep_artifact is not None and 'kotlin-stdlib' in dep_artifact.text): + kotlin_dep = dep + break + + # Determine if this is a Kotlin project + is_kotlin = kotlin_version is not None or kotlin_plugin is not None or kotlin_dep is not None + + # Check for source directories + source_dir = None + source_dirs = root.findall('.//mvn:sourceDirectory', ns) + if source_dirs: + source_dir = source_dirs[0].text + + # Check for default goal (to use the same command as IntelliJ) + default_goal = None + default_goal_elem = root.find('./mvn:build/mvn:defaultGoal', ns) + if default_goal_elem is not None: + default_goal = default_goal_elem.text + + return { + "artifact_id": artifact_id, + "group_id": group_id, + "version": version, + "name": name, + "java_version": java_version, + "packaging": packaging, + "is_kotlin": is_kotlin, + "kotlin_version": kotlin_version, + "source_dir": source_dir, + "default_goal": default_goal, + "pom_path": pom_path, + "build_system": "maven" + } + except Exception as e: + print(f"Error parsing {pom_path}: {e}") + return None + + +def parse_gradle_file(gradle_path): + """ + Parse a build.gradle or build.gradle.kts file and extract relevant information + """ + try: + print(f"Parsing Gradle file: {gradle_path}") + + # Read the file content + with open(gradle_path, 'r') as f: + content = f.read() + + # Determine if it's a Kotlin DSL file + is_kotlin_dsl = gradle_path.endswith('.kts') + + # Extract group, version and project name + group_match = re.search(r'group\s*=\s*[\'"]([^\'"]+)[\'"]', content) + group_id = group_match.group(1) if group_match else "unknown" + + version_match = re.search(r'version\s*=\s*[\'"]([^\'"]+)[\'"]', content) + version = version_match.group(1) if version_match else "unknown" + + # Check settings.gradle for project name + settings_path = os.path.join(os.path.dirname(gradle_path), "settings.gradle") + settings_path_kts = os.path.join(os.path.dirname(gradle_path), "settings.gradle.kts") + + artifact_id = "unknown" + name = "unknown" + + # Here I was on fucking crack? This is fucking crazy! + # Anyways Here it checks the artifacting settings for Gradle (kts) + if os.path.exists(settings_path): + with open(settings_path, 'r') as f: + settings_content = f.read() + root_project_match = re.search(r'rootProject\.name\s*=\s*[\'"]([^\'"]+)[\'"]', settings_content) + if root_project_match: + artifact_id = root_project_match.group(1) + name = artifact_id + elif os.path.exists(settings_path_kts): + with open(settings_path_kts, 'r') as f: + settings_content = f.read() + root_project_match = re.search(r'rootProject\.name\s*=\s*[\'"]([^\'"]+)[\'"]', settings_content) + if root_project_match: + artifact_id = root_project_match.group(1) + name = artifact_id + + # If no name found in settings.gradle, use directory name + if artifact_id == "unknown": + artifact_id = os.path.basename(os.path.dirname(gradle_path)) + name = artifact_id + + # Check for Java version + java_version = "17" # Default to Java 17 + java_version_match = re.search(r'sourceCompatibility\s*=\s*[\'"]*JavaVersion\.VERSION_(\d+)[\'"]*', content) + if java_version_match: + java_version = java_version_match.group(1) + else: + # Alternative pattern: sourceCompatibility = '11' + alt_java_match = re.search(r'sourceCompatibility\s*=\s*[\'"](\d+)[\'"]', content) + if alt_java_match: + java_version = alt_java_match.group(1) + else: + # Look for toolchain configuration + toolchain_match = re.search(r'toolchain\s*{[^}]*languageVersion\s*=\s*JavaLanguageVersion\s*\.\s*of\s*\(\s*(\d+)\s*\)', content, re.DOTALL) + if toolchain_match: + java_version = toolchain_match.group(1) + + # Check if Kotlin is used + kotlin_plugin_match = re.search(r'(id\s*\(\s*[\'"]kotlin[\'"])|(id\s*[\'"]org\.jetbrains\.kotlin)', content) + kotlin_version_match = re.search(r'kotlin\s*version\s*[\'"]([^\'"]+)[\'"]', content) + is_kotlin = bool(kotlin_plugin_match) or bool(kotlin_version_match) or is_kotlin_dsl + + kotlin_version = kotlin_version_match.group(1) if kotlin_version_match else None + + # Check for application plugin + is_application = bool(re.search(r'id\s*\(\s*[\'"]application[\'"]', content)) + + return { + "artifact_id": artifact_id, + "group_id": group_id, + "version": version, + "name": name, + "java_version": java_version, + "packaging": "jar" if not is_application else "application", + "is_kotlin": is_kotlin, + "kotlin_version": kotlin_version, + "source_dir": None, # Gradle uses conventional source dirs + "default_goal": None, # Gradle doesn't have default goals like Maven + "gradle_path": gradle_path, + "is_kotlin_dsl": is_kotlin_dsl, + "build_system": "gradle" + } + except Exception as e: + print(f"Error parsing {gradle_path}: {e}") + return None + + +def generate_maven_workflow(pom_infos): + """ + Generate a Gitea workflow YAML file for Maven projects + """ + if not pom_infos: + print("No valid Maven POM files found") + return None + + # Get the highest Java version required + java_version = max([info["java_version"] for info in pom_infos]) + + # Check if any project uses Kotlin + uses_kotlin = any(info["is_kotlin"] for info in pom_infos) + + # Kotlin version (if any) + kotlin_version = None + for info in pom_infos: + if info["kotlin_version"]: + kotlin_version = info["kotlin_version"] + break + + # Construct the workflow content + workflow_content = f"""name: Maven Build + +on: + push: + branches: [ main, master, dev ] + pull_request: + branches: [ main, master ] + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up JDK {java_version} + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '{java_version}' + cache: 'maven' + + - name: Install Maven + run: | + if ! command -v mvn &> /dev/null; then + echo "Maven not found, installing..." + sudo apt-get update + sudo apt-get install -y maven + fi + mvn --version + + - name: Debug Info + run: | + echo "Current workspace directory: $GITHUB_WORKSPACE" + echo "Current directory: $(pwd)" + echo "Project structure:" + find . -type f -name "*.kt" | sort + find . -type f -name "pom.xml" + echo "Maven version: $(mvn --version)" +""" + + # Add individual build steps for each POM + for i, info in enumerate(pom_infos): + # Determine the Maven command to use (same as the default goal if specified) + maven_command = "clean package" + if info["default_goal"]: + maven_command = info["default_goal"] + + relative_pom_path = info["pom_path"] + + workflow_content += f""" + - name: Build {info["name"]} ({info["artifact_id"]}) + run: | + echo "Building {info["artifact_id"]}" + echo "Current directory: $(pwd)" + # Run Maven build directly using the POM file path + mvn -B {maven_command} -f "{relative_pom_path}" -Dmaven.compiler.failOnError=true +""" + + # Add artifact upload step + workflow_content += f""" + - name: Upload {info["artifact_id"]} artifact + uses: actions/upload-artifact@v3 + with: + name: {info["artifact_id"]} + path: | + {os.path.dirname(relative_pom_path)}/target/{info['artifact_id']}-*.jar + {os.path.dirname(relative_pom_path)}/target/*.jar + if-no-files-found: warn +""" + + return workflow_content + + +def generate_gradle_workflow(gradle_infos): + """ + Generate a Gitea workflow YAML file for Gradle projects + """ + if not gradle_infos: + print("No valid Gradle files found") + return None + + # Get the highest Java version required + java_version = max([info["java_version"] for info in gradle_infos]) + + # Check if any project uses Kotlin + uses_kotlin = any(info["is_kotlin"] for info in gradle_infos) + + # Kotlin version (if any) + kotlin_version = None + for info in gradle_infos: + if info["kotlin_version"]: + kotlin_version = info["kotlin_version"] + break + + # Construct the workflow content + workflow_content = f"""name: Gradle Build + +on: + push: + branches: [ main, master, dev ] + pull_request: + branches: [ main, master ] + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up JDK {java_version} + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '{java_version}' + cache: 'gradle' + + - name: Grant execute permission for gradlew + run: | + find . -name gradlew -type f -exec chmod +x {{}} \; + + - name: Debug Info + run: | + echo "Current workspace directory: $GITHUB_WORKSPACE" + echo "Current directory: $(pwd)" + echo "Project structure:" + find . -type f -name "*.kt" | sort + find . -type f -name "build.gradle*" + if [ -f ./gradlew ]; then + ./gradlew --version + else + echo "No wrapper found, will use system gradle" + gradle --version + fi +""" + + # Add individual build steps for each Gradle project + for i, info in enumerate(gradle_infos): + project_dir = os.path.dirname(info["gradle_path"]) + has_wrapper = os.path.exists(os.path.join(project_dir, "gradlew")) + gradle_command = f"{os.path.join(project_dir, 'gradlew')}" if has_wrapper else "gradle" + + workflow_content += f""" + - name: Build {info["name"]} ({info["artifact_id"]}) + working-directory: {project_dir} + run: | + echo "Building {info["artifact_id"]}" + echo "Current directory: $(pwd)" + # Run Gradle build + {"./gradlew" if has_wrapper else "gradle"} build +""" + + # Add artifact upload step + workflow_content += f""" + - name: Upload {info["artifact_id"]} artifact + uses: actions/upload-artifact@v3 + with: + name: {info["artifact_id"]} + path: | + {project_dir}/build/libs/*.jar + {project_dir}/app/build/libs/*.jar + {project_dir}/build/distributions/*.zip + {project_dir}/app/build/distributions/*.zip + if-no-files-found: warn +""" + + return workflow_content + + +def find_pom_files(base_dir="."): + """Find all pom.xml files in the given directory and subdirectories""" + return glob.glob(f"{base_dir}/**/pom.xml", recursive=True) + + +def find_gradle_files(base_dir="."): + """Find all build.gradle and build.gradle.kts files in the given directory and subdirectories""" + gradle_files = glob.glob(f"{base_dir}/**/build.gradle", recursive=True) + kotlin_gradle_files = glob.glob(f"{base_dir}/**/build.gradle.kts", recursive=True) + return gradle_files + kotlin_gradle_files + + +def generate_build_script(project_infos): + """Generate a universal build script for either Maven or Gradle projects""" + + maven_projects = [p for p in project_infos if p["build_system"] == "maven"] + gradle_projects = [p for p in project_infos if p["build_system"] == "gradle"] + + script = """#!/bin/bash +# Universal build script for Maven and Gradle projects + +echo "Current directory: $(pwd)" +""" + + if maven_projects: + script += """ +# Check if Maven is installed +if ! command -v mvn &> /dev/null; then + echo "Maven not found, installing..." + sudo apt-get update + sudo apt-get install -y maven +fi + +echo "Maven version: $(mvn --version)" +""" + + for project in maven_projects: + script += f""" +echo "Building Maven project: {project['name']}" +mvn clean package -f "{project['pom_path']}" +""" + + if gradle_projects: + script += """ +# Check for Gradle or Gradle Wrapper +""" + for project in gradle_projects: + project_dir = os.path.dirname(project["gradle_path"]) + has_wrapper = os.path.exists(os.path.join(project_dir, "gradlew")) + + if has_wrapper: + script += f""" +echo "Building Gradle project using wrapper: {project['name']}" +cd "{project_dir}" +chmod +x ./gradlew +./gradlew build +cd - > /dev/null +""" + else: + script += f""" +echo "Building Gradle project using system Gradle: {project['name']}" +# Install Gradle if not available +if ! command -v gradle &> /dev/null; then + echo "Gradle not found, installing..." + sudo apt-get update + sudo apt-get install -y gradle +fi +cd "{project_dir}" +gradle build +cd - > /dev/null +""" + + script += """ +echo "Build complete. Build artifacts should be in their respective target/ or build/libs/ directories." +""" + return script + + +def main(): + parser = argparse.ArgumentParser(description='Generate Gitea workflow for Maven/Gradle/Kotlin projects') + parser.add_argument('--dir', '-d', default='.', help='Base directory to search for project files') + parser.add_argument('--specific-pom', '-p', help='Path to a specific pom.xml file to process') + parser.add_argument('--specific-gradle', '-g', help='Path to a specific build.gradle file to process') + parser.add_argument('--output-json', '-j', action='store_true', help='Output project info as JSON as well') + args = parser.parse_args() + + # Find project files + pom_files = [] + gradle_files = [] + + if args.specific_pom: + pom_files = [args.specific_pom] + else: + pom_files = find_pom_files(args.dir) + + if args.specific_gradle: + gradle_files = [args.specific_gradle] + else: + gradle_files = find_gradle_files(args.dir) + + if not pom_files and not gradle_files: + print(f"No pom.xml or build.gradle files found in {args.dir}") + return + + print(f"Found {len(pom_files)} pom.xml files and {len(gradle_files)} Gradle files") + + # Parse all project files + project_infos = [] + + # Parse Maven files + for pom_file in pom_files: + info = parse_pom_xml(pom_file) + if info: + project_infos.append(info) + + # Parse Gradle files + for gradle_file in gradle_files: + info = parse_gradle_file(gradle_file) + if info: + project_infos.append(info) + + if not project_infos: + print("No valid project files could be parsed") + return + + # Count by build system + maven_count = sum(1 for p in project_infos if p["build_system"] == "maven") + gradle_count = sum(1 for p in project_infos if p["build_system"] == "gradle") + + # Create the .gitea/workflows directory if it doesn't exist + workflow_dir = Path(".gitea/workflows") + workflow_dir.mkdir(parents=True, exist_ok=True) + + # Generate and write workflow files for each build system + if maven_count > 0: + maven_infos = [p for p in project_infos if p["build_system"] == "maven"] + maven_workflow = generate_maven_workflow(maven_infos) + if maven_workflow: + maven_workflow_file = workflow_dir / "maven_build.yaml" + with open(maven_workflow_file, "w") as f: + f.write(maven_workflow) + print(f"Gitea Maven workflow generated at: {maven_workflow_file}") + + if gradle_count > 0: + gradle_infos = [p for p in project_infos if p["build_system"] == "gradle"] + gradle_workflow = generate_gradle_workflow(gradle_infos) + if gradle_workflow: + gradle_workflow_file = workflow_dir / "gradle_build.yaml" + with open(gradle_workflow_file, "w") as f: + f.write(gradle_workflow) + print(f"Gitea Gradle workflow generated at: {gradle_workflow_file}") + + # Generate a universal build script + build_script = generate_build_script(project_infos) + with open("build.sh", "w") as f: + f.write(build_script) + os.chmod("build.sh", 0o755) + print(f"Universal build script generated at: build.sh") + + # Print summary of detected projects + print("\nDetected projects:") + # What the actuall fuck is going on here? Whoever reads this may God be with you! + for info in project_infos: + kotlin_info = "with Kotlin" if info["is_kotlin"] else "Java only" + if info["build_system"] == "maven": + build_command = info["default_goal"] if info["default_goal"] else "clean package" + print(f"- {info['name']} ({info['artifact_id']}): Maven, {kotlin_info}, Java {info['java_version']}, build: {build_command}") + else: + dsl_info = "Kotlin DSL" if info.get("is_kotlin_dsl") else "Groovy DSL" + print(f"- {info['name']} ({info['artifact_id']}): Gradle ({dsl_info}), {kotlin_info}, Java {info['java_version']}") + + # Export as JSON if requested + if args.output_json: + with open("project_info.json", "w") as f: + json.dump(project_infos, f, indent=2) + print(f"Project information exported to project_info.json") + +# Run script! +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/snapshot_20250527_161519.jpg b/snapshot_20250527_161519.jpg deleted file mode 100644 index 71869d76119aec02a9bda5b26c6206de58385003..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31023 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