Created
January 12, 2016 08:08
-
-
Save Techcable/db22b94c68927839c5ba to your computer and use it in GitHub Desktop.
Utility to compile/copy and run a plugin in a test server
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/env python3 | |
| import os | |
| import sys | |
| from os import path | |
| import shutil | |
| from subprocess import run, DEVNULL | |
| from zipfile import ZipFile | |
| # pip install PyYAML | |
| import yaml | |
| def findJar(): | |
| def getJarKey(name): | |
| name = name.replace(".jar", "") | |
| if name.endswith("-shaded"): return -1 | |
| elif name.startswith("original"): return 1 | |
| else: return 0 | |
| jars = filter(lambda file: file.endswith(".jar"), os.listdir("target")) | |
| jars = sorted(jars, key=getJarKey) | |
| return path.join("target", jars[0]) | |
| def getPluginName(): | |
| with open(path.join('src', 'main', 'resources', 'plugin.yml')) as pluginMetadataFile: | |
| metadata = yaml.load(pluginMetadataFile.read()) | |
| return metadata['name'] | |
| debug = True | |
| if len(sys.argv) > 1: | |
| runMode = sys.argv[1].lower() | |
| if runMode == "debug": debug = True | |
| elif runMode == "run": debug = False | |
| else: exit("Invalid runmode:", runMode) | |
| homedir = os.path.expanduser("~") | |
| server_dir = path.join(homedir, "plugintest") | |
| server_jar = path.join(server_dir, "taco-1.8.8.jar") | |
| print("Compiling", getPluginName(), "with maven") | |
| run(["mvn", "install", "-DskipTests"], stdout=DEVNULL, check=True) | |
| print("Copying", findJar(), "to the test server") | |
| output_jar = path.join(server_dir, "plugins", getPluginName() + ".jar") | |
| if path.exists(output_jar): | |
| print("Removing an existing", getPluginName() + ".jar") | |
| shutil.copy(findJar(), output_jar) | |
| debug_arg = "-agentlib:jdwp=transport=dt_socket,server=y,address=5005" | |
| if debug: debug_arg += ",suspend=y" | |
| else: debug_arg += ",suspend=n" | |
| print("Starting test server") | |
| if debug: | |
| print("Make sure to attach a debugger, or the server won't start.") | |
| run(["java", debug_arg, "-jar", server_jar], cwd=server_dir) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment