Advertisement
Guest User

Untitled

a guest
Aug 3rd, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 7.00 KB | None | 0 0
  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <project name="DuckbladeNetwork" default="deploy">
  4.  
  5.     <property name="build.dir" value="build/" />
  6.  
  7.     <target name="clean">
  8.         <delete dir="${build.dir}" />
  9.         <mkdir dir="${build.dir}" />
  10.     </target>
  11.  
  12.     <target name="get-project">
  13.         <input message="Please choose a project"
  14.               validargs="lobby,spleef"
  15.               addproperty="project.name" />
  16.     </target>
  17.  
  18.     <target name="get-server">
  19.         <input message="Please choose a server"
  20.               validargs="test,lobby,spleef"
  21.               addproperty="server.name" />
  22.     </target>
  23.  
  24.     <target name="get-credentials">
  25.         <input message="Please enter the username of the server"
  26.               defaultvalue="minecraft"
  27.               addproperty="server.username" />
  28.         <input message="Please enter the password of the server"
  29.               addproperty="server.password" />
  30.     </target>
  31.  
  32.     <target name="clean-plugins" depends="get-server, get-credentials, stop-server">
  33.         <sshexec host="duckblade.com"
  34.                 username="${server.username}"
  35.                 password="${server.password}"
  36.                 trust="true"
  37.                 failonerror="false"
  38.                 command="rm -R /opt/msm/servers/${server.name}/plugins/" />
  39.         <echo>Deleted plugin files on test server.</echo>
  40.         <sshexec host="duckblade.com"
  41.                 username="${server.username}"
  42.                 password="${server.password}"
  43.                 trust="true"
  44.                 failonerror="false"
  45.                 command="mkdir /opt/msm/servers/${server.name}/plugins/" />
  46.     </target>
  47.  
  48.     <target name="clean-world" depends="get-server, get-credentials, stop-server">
  49.         <sshexec host="duckblade.com"
  50.                 username="${server.username}"
  51.                 password="${server.password}"
  52.                 trust="true"
  53.                 failonerror="false"
  54.                 command="rm -R /opt/msm/servers/${server.name}/world/"/>
  55.         <echo>Deleted world files on test server.</echo>
  56.     </target>
  57.  
  58.     <target name="clean-server" depends="get-server, get-credentials">
  59.         <antcall target="clean-plugins" />
  60.         <antcall target="clean-world" />
  61.     </target>
  62.  
  63.     <target name="compile" depends="get-project">
  64.         <mkdir dir="${build.dir}" />
  65.         <property name="class.dir" value="${build.dir}/${project.name}/" />
  66.         <mkdir dir="${class.dir}" />
  67.         <echo>Compiling source files for project ${project.name}</echo>
  68.         <path id="api-path">
  69.             <fileset dir="." includes="*.jar" />
  70.         </path>
  71.         <javac srcdir="${project.name}/src"
  72.               destdir="${build.dir}/${project.name}/"
  73.               includeantruntime="no"
  74.               includejavaruntime="no"
  75.               classpath="api-path"
  76.               target="${ant.java.version}"
  77.               source="${ant.java.version}"
  78.               compiler="javac${ant.java.version}"
  79.               debug="true" >
  80.             <classpath refid="api-path" />
  81.         </javac>
  82.         <echo>Compiled source files for project ${project.name}</echo>
  83.     </target>
  84.  
  85.     <target name="compile-global" depends="">
  86.         <mkdir dir="${build.dir}/global" />
  87.         <property name="class.global.dir" value="${build.dir}/global/" />
  88.         <mkdir dir="${class.global.dir}" />
  89.         <echo>Compiling source files for project ${project.name}</echo>
  90.         <path id="api-path">
  91.             <fileset dir="." includes="*.jar" />
  92.             <file file="dependencies/global/PermissionsEx.jar" />
  93.         </path>
  94.         <javac srcdir="global/src"
  95.               destdir="${build.dir}/global/"
  96.               includeantruntime="no"
  97.               includejavaruntime="no"
  98.               classpath="api-path"
  99.               target="${ant.java.version}"
  100.               source="${ant.java.version}"
  101.               compiler="javac${ant.java.version}"
  102.               debug="true" >
  103.             <classpath refid="api-path" />
  104.         </javac>
  105.         <echo>Compiled source files for global plugin</echo>
  106.     </target>
  107.  
  108.     <target name="jar" depends="get-project, compile">
  109.         <mkdir dir="${build.dir}/jars" />
  110.         <echo>Creating deployable jar file for project ${project.name}</echo>
  111.         <jar destfile="${build.dir}/jars/${project.name}.jar">
  112.             <fileset dir="${class.dir}" includes="**/*.class" />
  113.             <fileset dir="${project.name}" includes="*.yml" />
  114.         </jar>
  115.         <echo>Created jar file for project ${project.name}</echo>
  116.     </target>
  117.  
  118.     <target name="jar-global" depends="compile-global">
  119.         <mkdir dir="${build.dir}/jars" />
  120.         <echo>Creating deployable jar file for project ${project.name}</echo>
  121.         <jar destfile="${build.dir}/jars/global.jar">
  122.             <fileset dir="${class.global.dir}" includes="**/*.class" />
  123.             <fileset dir="${project.name}" includes="*.yml" />
  124.         </jar>
  125.         <echo>Created jar file for global plugin</echo>
  126.     </target>
  127.  
  128.     <target name="stop-server" depends="get-server, get-credentials">
  129.         <sshexec host="duckblade.com"
  130.                 username="${server.username}"
  131.                 password="${server.password}"
  132.                 trust="true"
  133.                 command="msm ${server.name} stop" />
  134.         <echo>Stopped remote server if it was running</echo>
  135.     </target>
  136.  
  137.     <target name="start-server" depends="get-server, get-credentials">
  138.         <sshexec host="duckblade.com"
  139.                 username="${server.username}"
  140.                 password="${server.password}"
  141.                 trust="true"
  142.                 command="msm ${server.name} start" />
  143.         <echo>Started remote server if it was not already running</echo>
  144.     </target>
  145.  
  146.     <target name="restart-server" depends="get-server, get-credentials">
  147.         <antcall target="stop-server" />
  148.         <antcall target="start-server" />
  149.     </target>
  150.  
  151.     <target name="upload-jar" depends="get-server, get-project, get-credentials, jar">
  152.         <scp file="${build.dir}/jars/${project.name}.jar"
  153.             todir="${server.username}@duckblade.com:/opt/msm/servers/${server.name}/plugins/"
  154.             password="${server.password}"
  155.             trust="true" />
  156.     </target>
  157.  
  158.     <target name="upload-dependencies" depends="get-server, get-project, get-credentials, jar-global">
  159.         <scp todir="${server.username}@duckblade.com:/opt/msm/servers/${server.name}/plugins/"
  160.             password="${server.password}"
  161.             file="build/jars/global"
  162.             trust="true">
  163.             <fileset dir="dependencies/${project.name}" />
  164.             <fileset dir="dependencies/global/" />
  165.         </scp>
  166.     </target>
  167.  
  168.     <target name="deploy" depends="get-server, get-project, get-credentials">
  169.         <antcall target="stop-server" />
  170.         <antcall target="clean-plugins" />
  171.         <antcall target="upload-jar" />
  172.         <antcall target="upload-dependencies" />
  173.         <antcall target="start-server" />
  174.     </target>
  175.  
  176. </project>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement