mirror of
https://github.com/mitb-archive/filebot
synced 2024-11-16 06:15:02 -05:00
689 lines
28 KiB
XML
689 lines
28 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
<project name="filebot" default="fatjar">
|
|
<!-- include default inputs (optional) -->
|
|
<property file="profile.properties" />
|
|
|
|
<!-- include application properties -->
|
|
<property file="source/net/filebot/Settings.properties" />
|
|
<property name="title" value="${application.name}" />
|
|
<property name="version" value="${application.version}" />
|
|
|
|
<tstamp>
|
|
<format property="today" pattern="yyyy-MM-dd" />
|
|
</tstamp>
|
|
|
|
<!-- define source dirs -->
|
|
<property name="dir.source" location="${basedir}/source" />
|
|
<property name="dir.test" location="${basedir}/test" />
|
|
<property name="dir.build" location="${basedir}/build" />
|
|
<property name="dir.dist" location="${basedir}/dist" />
|
|
<property name="dir.lib" location="${basedir}/lib" />
|
|
<property name="dir.website" location="${basedir}/website" />
|
|
<property name="dir.installer" location="${basedir}/installer" />
|
|
|
|
<!-- define output paths -->
|
|
<property name="path.fatjar" location="${dir.dist}/${title}_${version}.jar" />
|
|
<property name="path.appbundle.tar.gz" location="${dir.dist}/${title}_${version}.app.tar.gz" />
|
|
<property name="path.ubuntu-binary.tar.gz" location="${dir.dist}/filebot-${version}-ubuntu.tar.gz" />
|
|
<property name="path.source.zip" location="${dir.dist}/filebot-${version}-src.zip" />
|
|
|
|
<property name="deploy.release" value="web.sourceforge.net:/home/frs/project/f/fi/filebot/filebot" />
|
|
<property name="deploy.website" value="web.sourceforge.net:htdocs" />
|
|
<property name="deploy.data.frs" value="web.sourceforge.net:/home/frs/project/f/fi/filebot/data" />
|
|
|
|
|
|
<target name="jar" depends="build">
|
|
<!-- create dist dir -->
|
|
<mkdir dir="${dir.dist}" />
|
|
|
|
<!-- main jar -->
|
|
<jar destfile="${dir.dist}/filebot.jar">
|
|
<manifest>
|
|
<attribute name="Built-By" value="${user.name}" />
|
|
<attribute name="Built-Date" value="${today}" />
|
|
<attribute name="Built-Revision" value="${svn.revision}" />
|
|
<attribute name="Application-Name" value="${title}" />
|
|
<attribute name="Application-Version" value="${version}" />
|
|
<attribute name="Main-Class" value="net.filebot.Main" />
|
|
</manifest>
|
|
<fileset dir="${dir.build}" excludes="**/*Test*" />
|
|
</jar>
|
|
|
|
<!-- extra jar containing all the unit tests -->
|
|
<jar destfile="${dir.dist}/filebot-test.jar">
|
|
<fileset dir="${dir.build}" includes="**/*Test*" />
|
|
</jar>
|
|
|
|
<!-- source as zip -->
|
|
<zip destfile="${path.source.zip}">
|
|
<fileset dir="source" />
|
|
<fileset dir="test" />
|
|
</zip>
|
|
</target>
|
|
|
|
|
|
<target name="fatjar" depends="jar" description="Merge all class files into a single executable jar file">
|
|
<jar destfile="${path.fatjar}" filesetmanifest="merge" duplicate="fail" index="yes">
|
|
<!-- include main jar -->
|
|
<zipfileset src="${dir.dist}/filebot.jar" />
|
|
|
|
<!-- include libs -->
|
|
<zipfileset src="${dir.lib}/xercesMinimal.jar">
|
|
<include name="org/apache/**" />
|
|
<include name="org/w3c/dom/html/**" />
|
|
</zipfileset>
|
|
|
|
<zipfileset src="${dir.lib}/nekohtml.jar">
|
|
<include name="org/cyberneko/html/**" />
|
|
</zipfileset>
|
|
|
|
<zipfileset src="${dir.lib}/jsoup.jar">
|
|
<include name="org/jsoup/**" />
|
|
</zipfileset>
|
|
|
|
<zipfileset src="${dir.lib}/json-simple.jar">
|
|
<include name="org/json/simple/**" />
|
|
</zipfileset>
|
|
|
|
<zipfileset src="${dir.lib}/json-io.jar">
|
|
<include name="com/cedarsoftware/util/**" />
|
|
</zipfileset>
|
|
|
|
<zipfileset src="${dir.lib}/simmetrics.jar">
|
|
<include name="uk/ac/shef/wit/simmetrics/**" />
|
|
</zipfileset>
|
|
|
|
<zipfileset src="${dir.lib}/glazedlists.jar">
|
|
<include name="ca/odell/glazedlists/**" />
|
|
</zipfileset>
|
|
|
|
<zipfileset src="${dir.lib}/miglayout-core.jar">
|
|
<include name="net/miginfocom/**" />
|
|
</zipfileset>
|
|
|
|
<zipfileset src="${dir.lib}/miglayout-swing.jar">
|
|
<include name="net/miginfocom/**" />
|
|
</zipfileset>
|
|
|
|
<zipfileset src="${dir.lib}/rsyntaxtextarea.jar">
|
|
<include name="org/fife/**" />
|
|
</zipfileset>
|
|
|
|
<zipfileset src="${dir.lib}/xmlrpc.jar">
|
|
<include name="redstone/xmlrpc/**" />
|
|
</zipfileset>
|
|
|
|
<zipfileset src="${dir.lib}/args4j.jar">
|
|
<include name="org/kohsuke/args4j/**" />
|
|
</zipfileset>
|
|
|
|
<zipfileset src="${dir.lib}/xz.jar">
|
|
<include name="org/tukaani/xz/**" />
|
|
</zipfileset>
|
|
|
|
<zipfileset src="${dir.lib}/ehcache.jar">
|
|
<include name="META-INF/services/**" />
|
|
<include name="net/sf/ehcache/**" />
|
|
<include name="org/terracotta/**" />
|
|
<include name="ehcache-failsafe.xml" />
|
|
<include name="build-info.properties" />
|
|
</zipfileset>
|
|
|
|
<zipfileset src="${dir.lib}/slf4j-api.jar">
|
|
<include name="org/slf4j/**" />
|
|
</zipfileset>
|
|
|
|
<zipfileset src="${dir.lib}/slf4j-jdk14.jar">
|
|
<include name="org/slf4j/**" />
|
|
</zipfileset>
|
|
|
|
<zipfileset src="${dir.lib}/commons-io.jar">
|
|
<include name="org/apache/commons/io/**" />
|
|
</zipfileset>
|
|
|
|
<!-- include classes and native libraries -->
|
|
<zipfileset src="${dir.lib}/jna.jar">
|
|
<include name="com/sun/jna/**" />
|
|
</zipfileset>
|
|
|
|
<zipfileset src="${dir.lib}/jna-platform.jar">
|
|
<include name="com/sun/jna/platform/win32/**" />
|
|
</zipfileset>
|
|
|
|
<zipfileset src="${dir.lib}/groovy.jar">
|
|
<include name="groovy*/**" />
|
|
<include name="org/codehaus/groovy/**" />
|
|
<include name="META-INF/dgminfo" />
|
|
<include name="META-INF/services/**" />
|
|
<include name="META-INF/*.properties" />
|
|
<!-- filebot already includes it's own extension modules -->
|
|
<exclude name="META-INF/services/org.codehaus.groovy.runtime.ExtensionModule" />
|
|
</zipfileset>
|
|
|
|
<zipfileset src="${dir.lib}/icu4j.jar">
|
|
<include name="com/ibm/icu/**" />
|
|
</zipfileset>
|
|
|
|
<zipfileset src="${dir.lib}/jacksum.jar">
|
|
<include name="jonelo/jacksum/adapt/**" />
|
|
<include name="jonelo/jacksum/algorithm/**" />
|
|
<include name="jonelo/sugar/util/**" />
|
|
</zipfileset>
|
|
|
|
<zipfileset src="${dir.lib}/junrar-custom.jar">
|
|
<include name="de/innosystec/unrar/**" />
|
|
</zipfileset>
|
|
|
|
<zipfileset src="${dir.lib}/jgat-custom.jar">
|
|
<include name="com/dmurph/tracking/**" />
|
|
</zipfileset>
|
|
|
|
<zipfileset src="${dir.lib}/sevenzipjbinding.jar">
|
|
<include name="net/sf/sevenzipjbinding/**" />
|
|
</zipfileset>
|
|
|
|
<!-- Ivy for @Grapes automatic dependency management -->
|
|
<zipfileset src="${dir.lib}/scripting/ivy.jar">
|
|
<include name="org/apache/ivy/**" />
|
|
</zipfileset>
|
|
|
|
<!-- AntBuilder including dependencies for ant-javamail, ant-commons-net and ant-jsch -->
|
|
<zipfileset src="${dir.lib}/scripting/ant.jar">
|
|
<include name="org/apache/tools/**" />
|
|
</zipfileset>
|
|
<zipfileset src="${dir.lib}/scripting/ant-launcher.jar">
|
|
<include name="org/apache/tools/**" />
|
|
</zipfileset>
|
|
<zipfileset src="${dir.lib}/scripting/ant-commons-net.jar">
|
|
<include name="org/apache/tools/**" />
|
|
</zipfileset>
|
|
<zipfileset src="${dir.lib}/scripting/ant-jsch.jar">
|
|
<include name="org/apache/tools/**" />
|
|
</zipfileset>
|
|
<zipfileset src="${dir.lib}/scripting/ant-javamail.jar">
|
|
<include name="org/apache/tools/**" />
|
|
</zipfileset>
|
|
<zipfileset src="${dir.lib}/scripting/commons-net.jar">
|
|
<include name="org/apache/commons/net/**" />
|
|
</zipfileset>
|
|
<zipfileset src="${dir.lib}/scripting/jsch.jar">
|
|
<include name="com/jcraft/jsch/**" />
|
|
</zipfileset>
|
|
<zipfileset src="${dir.lib}/scripting/mail.jar">
|
|
<include name="javax/mail/**" />
|
|
<include name="com/sun/mail/**" />
|
|
<include name="META-INF/*mail*" />
|
|
</zipfileset>
|
|
</jar>
|
|
</target>
|
|
|
|
|
|
<target name="appbundle" depends="fatjar" description="Build an OSX application bundle">
|
|
<taskdef name="bundleapp" classname="com.oracle.appbundler.AppBundlerTask" classpath="${dir.lib}/build/appbundler.jar" />
|
|
|
|
<bundleapp outputdirectory="${dir.dist}" name="${title}" displayname="${title}" shortversion="${version}" identifier="net.sourceforge.FileBot" mainclassname="net.filebot.Main" icon="${dir.installer}/appbundle/filebot.icns" copyright="2014 Reinhard Pointner" applicationcategory="public.app-category.productivity">
|
|
<classpath file="${path.fatjar}" />
|
|
<librarypath dir="${dir.lib}/native/mac-x86_64" />
|
|
|
|
<option value="-Dapplication.deployment=app" />
|
|
<option value="-Dapplication.update=auto" />
|
|
<option value="-Dunixfs=false" />
|
|
<option value="-DuseExtendedFileAttributes=true" />
|
|
<option value="-DuseCreationDate=false" />
|
|
|
|
<option value="-Djava.net.useSystemProxies=true" />
|
|
<option value="-Dsun.net.client.defaultConnectTimeout=10000" />
|
|
<option value="-Dsun.net.client.defaultReadTimeout=60000" />
|
|
<option value="-Dfile.encoding=UTF-8" />
|
|
|
|
<option value="-Djna.nosys=true" />
|
|
<option value="-Djna.library.path=$APP_ROOT/Contents/MacOS" />
|
|
<option value="-Djava.library.path=$APP_ROOT/Contents/MacOS" />
|
|
<option value="-Dnet.filebot.AcoustID.fpcalc=$APP_ROOT/Contents/MacOS/fpcalc" />
|
|
|
|
<option value="-Xdock:name=${title}" />
|
|
<option value="-Dcom.apple.macos.use-file-dialog-packages=true" />
|
|
<option value="-Dcom.apple.macos.useScreenMenuBar=true" />
|
|
</bundleapp>
|
|
|
|
<!-- application bundle folder as .tar.gz -->
|
|
<tar destfile="${path.appbundle.tar.gz}" compression="gzip">
|
|
<tarfileset dir="${dir.dist}" includes="${title}.app/**" excludes="**/MacOS/**" />
|
|
<tarfileset dir="${dir.dist}" includes="${title}.app/**/**.dylib" />
|
|
|
|
<!-- IMPORTANT application stub must be executable!! -->
|
|
<tarfileset dir="${dir.dist}" includes="${title}.app/**/**Launcher" filemode="755" />
|
|
<tarfileset dir="${dir.dist}" includes="${title}.app/**/fpcalc" filemode="755" />
|
|
<tarfileset prefix="${title}.app/Contents/MacOS" dir="${dir.installer}/appbundle" includes="*.sh" filemode="755" />
|
|
</tar>
|
|
|
|
<delete dir="${dir.dist}/${title}.app" />
|
|
</target>
|
|
|
|
|
|
<target name="ppa-binary" depends="svn-update, fatjar">
|
|
<tar longfile="gnu" compression="gzip" destfile="${path.ubuntu-binary.tar.gz}">
|
|
<tarfileset fullpath="i386/opt/filebot/FileBot.jar" file="${path.fatjar}" />
|
|
<tarfileset fullpath="amd64/opt/filebot/FileBot.jar" file="${path.fatjar}" />
|
|
<tarfileset prefix="i386/opt/filebot" dir="${dir.lib}/native/linux-i386" includes="*.so" />
|
|
<tarfileset prefix="amd64/opt/filebot" dir="${dir.lib}/native/linux-amd64" includes="*.so" />
|
|
<tarfileset prefix="i386/opt/filebot/bin" file="${dir.installer}/ubuntu/filebot.sh" filemode="755" />
|
|
<tarfileset prefix="amd64/opt/filebot/bin" file="${dir.installer}/ubuntu/filebot.sh" filemode="755" />
|
|
<tarfileset fullpath="filebot.desktop" file="${dir.installer}/ubuntu/FileBot.desktop" />
|
|
<tarfileset fullpath="filebot.svg" file="${dir.installer}/icons/icon.svg" />
|
|
</tar>
|
|
</target>
|
|
|
|
|
|
<target name="deb" depends="fatjar" description="Build debian package for i386 and amd64">
|
|
<taskdef resource="ant_deb_task.properties" classpath="${dir.lib}/build/ant-deb.jar" />
|
|
<antcall target="deb-arch">
|
|
<param name="arch" value="i386" />
|
|
</antcall>
|
|
<antcall target="deb-arch">
|
|
<param name="arch" value="amd64" />
|
|
</antcall>
|
|
</target>
|
|
|
|
<target name="deb-arch">
|
|
<deb todir="${dir.dist}" package="filebot" version="${version}" architecture="${arch}" section="misc" depends="openjdk-7-jre | openjdk-7-jre-headless" homepage="http://www.filebot.net" priority="optional" postinst="${dir.installer}/deb/postinst.sh" prerm="${dir.installer}/deb/prerem.sh">
|
|
<maintainer name="Reinhard Pointner" email="rednoah@users.sourceforge.net" />
|
|
<description synopsis="The ultimate TV and Movie Renamer">FileBot is the ultimate tool for renaming your movies, tv shows or anime and even downloading subtitles. It's smart, streamlined for simplicity and just works. Putting the super-efficient UI aside, it's also got a full-featured command-line interface and scripting engine for all sorts of automation. Anything is possible.</description>
|
|
<tarfileset fullpath="usr/share/filebot/FileBot.jar" file="${path.fatjar}" />
|
|
<tarfileset prefix="usr/share/filebot" dir="${dir.lib}/native/linux-${arch}" includes="*.so" />
|
|
<tarfileset prefix="usr/share/filebot" file="${dir.lib}/native/linux-${arch}/fpcalc" filemode="755" />
|
|
<tarfileset prefix="usr/share/filebot" file="${dir.installer}/icons/icon.svg" />
|
|
<tarfileset prefix="usr/share/filebot/bin" file="${dir.installer}/deb/filebot.sh" filemode="755" />
|
|
<tarfileset prefix="usr/share/applications" file="${dir.installer}/deb/FileBot.desktop" />
|
|
</deb>
|
|
</target>
|
|
|
|
|
|
<target name="ipkg" depends="fatjar" description="Build ipkg package for ARM and ATOM">
|
|
<taskdef resource="ant_deb_task.properties" classpath="${dir.lib}/build/ant-deb.jar" />
|
|
|
|
<antcall target="ipkg-arch">
|
|
<param name="arch" value="arm" />
|
|
</antcall>
|
|
<antcall target="ipkg-arch">
|
|
<param name="arch" value="i686" />
|
|
</antcall>
|
|
</target>
|
|
|
|
<target name="ipkg-arch">
|
|
<deb todir="${dir.dist}" package="filebot" version="${version}" architecture="${arch}" section="misc" homepage="http://www.filebot.net" priority="optional" postinst="${dir.installer}/ipkg/postinst.sh" prerm="${dir.installer}/ipkg/prerem.sh">
|
|
<maintainer name="Reinhard Pointner" email="rednoah@users.sourceforge.net" />
|
|
<description synopsis="The ultimate TV and Movie Renamer">FileBot is the ultimate tool for renaming your movies, tv shows or anime and even downloading subtitles. It's smart, streamlined for simplicity and just works. Putting the super-efficient UI aside, it's also got a full-featured command-line interface and scripting engine for all sorts of automation. Anything is possible.</description>
|
|
<tarfileset fullpath="opt/share/filebot/FileBot.jar" file="${path.fatjar}" />
|
|
<tarfileset prefix="opt/share/filebot" dir="${dir.lib}/native/linux-${arch}" includes="*.so" />
|
|
<tarfileset prefix="opt/share/filebot" file="${dir.lib}/native/linux-${arch}/fpcalc" filemode="755" />
|
|
<tarfileset prefix="opt/share/filebot/bin" file="${dir.installer}/ipkg/filebot.sh" filemode="755" />
|
|
</deb>
|
|
<move tofile="${dir.dist}/filebot_${version}_${arch}.ipk" file="${dir.dist}/filebot_${version}_${arch}.deb" overwrite="true" />
|
|
</target>
|
|
|
|
|
|
<target name="msi" depends="fatjar" description="Build Windows Installer for x86 and x64">
|
|
<antcall target="msi-arch">
|
|
<param name="arch" value="x86" />
|
|
<param name="libgcc_name" value="mingwm10.dll" />
|
|
</antcall>
|
|
<antcall target="msi-arch">
|
|
<param name="arch" value="x64" />
|
|
<param name="libgcc_name" value="libgcc_s_sjlj-1.dll" />
|
|
</antcall>
|
|
</target>
|
|
|
|
<target name="msi-arch">
|
|
<property name="jnidispatch" location="${dir.lib}/native/win32-${arch}/jnidispatch.dll" />
|
|
<property name="mediainfo" location="${dir.lib}/native/win32-${arch}/MediaInfo.dll" />
|
|
<property name="lib7z_binding" location="${dir.lib}/native/win32-${arch}/7-Zip-JBinding.dll" />
|
|
<property name="libgcc_path" location="${dir.lib}/native/win32-${arch}/${libgcc_name}" />
|
|
<property name="fpcalc_path" location="${dir.lib}/native/win32-${arch}/fpcalc.exe" />
|
|
<property name="installer" location="${dir.dist}/FileBot_${version}_${arch}.msi" />
|
|
|
|
<exec executable="candle.exe" dir="${dir.installer}/msi" failonerror="true">
|
|
<arg line="filebot-wix.xml -out ${dir.dist}/msi.wixobj -darch=${arch} -dreleaseversion=${version} -dfatjar=${path.fatjar} -djnidispatch=${jnidispatch} -dmediainfo=${mediainfo} -dlib7z_binding=${lib7z_binding} -dlibgcc_name=${libgcc_name} -dlibgcc_path=${libgcc_path} -dfpcalc_path=${fpcalc_path}" />
|
|
</exec>
|
|
<exec executable="light.exe" dir="${dir.installer}/msi" failonerror="true">
|
|
<arg line="${dir.dist}/msi.wixobj -sval -ext WixUIExtension -out ${installer}" />
|
|
</exec>
|
|
</target>
|
|
|
|
|
|
<target name="portable" depends="fatjar" description="Portable application package">
|
|
<mkdir dir="${dir.dist}/portable" />
|
|
<copy file="${path.fatjar}" tofile="${dir.dist}/portable/FileBot.jar" />
|
|
<copy todir="${dir.dist}/portable">
|
|
<fileset dir="${dir.installer}/portable" includes="*.exe, *.ini, *.cmd, *.sh" />
|
|
</copy>
|
|
|
|
<zip destfile="${dir.dist}/FileBot_${version}-portable.zip">
|
|
<zipfileset dir="${dir.dist}/portable" includes="*.jar, *.exe, *.ini, *.cmd" />
|
|
<zipfileset dir="${dir.dist}/portable" includes="*.sh" filemode="755" />
|
|
</zip>
|
|
</target>
|
|
|
|
|
|
<target name="webstart" depends="jar" description="Build and compress jars used for webstart deployment">
|
|
<!-- create dirs -->
|
|
<mkdir dir="${dir.dist}/webstart" />
|
|
|
|
<!-- copy jnlp descriptors and icons -->
|
|
<copy todir="${dir.dist}/webstart">
|
|
<fileset dir="${dir.installer}/webstart" />
|
|
<fileset dir="${dir.installer}/icons" />
|
|
</copy>
|
|
|
|
<!-- copy jars -->
|
|
<copy todir="${dir.dist}/webstart">
|
|
<fileset dir="${dir.lib}" includes="*.jar" excludes="jna.jar" />
|
|
</copy>
|
|
|
|
<!-- copy jna.jar without native libs -->
|
|
<jar destfile="${dir.dist}/webstart/jna.jar">
|
|
<zipfileset src="${dir.lib}/jna.jar" includes="**/*.class" />
|
|
</jar>
|
|
|
|
<!-- create mediainfo jar as seperate jar and use as trigger for lazy loading the native libs -->
|
|
<jar destfile="${dir.dist}/webstart/mediainfo.jar">
|
|
<fileset dir="${dir.build}" includes="net/filebot/mediainfo/**" />
|
|
</jar>
|
|
|
|
<!-- create indexed main jar -->
|
|
<jar destfile="${dir.dist}/webstart/filebot.jar" index="yes">
|
|
<fileset dir="${dir.build}" excludes="**/*Test*, net/filebot/mediainfo/**" />
|
|
<indexjars>
|
|
<!-- IMPORTANT if groovy is indexed things break during runtime!! -->
|
|
<fileset dir="${dir.dist}/webstart" includes="**/*.jar" excludes="filebot.jar, groovy.jar" />
|
|
</indexjars>
|
|
</jar>
|
|
|
|
<!-- create native lib jars -->
|
|
<antcall target="webstart-nativelib">
|
|
<param name="arch" value="win32-x86" />
|
|
</antcall>
|
|
<antcall target="webstart-nativelib">
|
|
<param name="arch" value="win32-x64" />
|
|
</antcall>
|
|
<antcall target="webstart-nativelib">
|
|
<param name="arch" value="linux-i386" />
|
|
</antcall>
|
|
<antcall target="webstart-nativelib">
|
|
<param name="arch" value="linux-amd64" />
|
|
</antcall>
|
|
<antcall target="webstart-nativelib">
|
|
<param name="arch" value="mac-x86_64" />
|
|
</antcall>
|
|
|
|
<!-- sign all jars -->
|
|
<apply executable="pack200">
|
|
<!-- workaround for bug 6575373, see http://bugs.sun.com/view_bug.do?bug_id=6575373 -->
|
|
<arg line="--segment-limit=-1" />
|
|
<arg line="--repack" />
|
|
<srcfile />
|
|
<fileset dir="${dir.dist}/webstart" includes="**/*.jar" />
|
|
</apply>
|
|
|
|
<signjar alias="filebot" keystore="filebot.keystore" storepass="secret">
|
|
<fileset id="signjar" dir="${dir.dist}/webstart" includes="**/*.jar" />
|
|
</signjar>
|
|
|
|
<!-- pack200 all jars -->
|
|
<apply executable="pack200" dest="${dir.dist}/webstart">
|
|
<!-- workaround for bug 6575373, see http://bugs.sun.com/view_bug.do?bug_id=6575373 -->
|
|
<arg line="--segment-limit=-1" />
|
|
<targetfile />
|
|
<srcfile />
|
|
<fileset dir="${dir.dist}/webstart" includes="*.jar" />
|
|
<mapper type="glob" from="*.jar" to="*.jar.pack.gz" />
|
|
</apply>
|
|
</target>
|
|
|
|
|
|
<target name="webstart-nativelib">
|
|
<!-- create temp dir -->
|
|
<mkdir dir="${dir.dist}/webstart/native/${arch}" />
|
|
|
|
<!-- copy native libs to temp dir -->
|
|
<copy todir="${dir.dist}/webstart/native/${arch}" flatten="true">
|
|
<zipfileset src="${dir.lib}/jna.jar" includes="com/sun/jna/${arch}/*" />
|
|
<fileset dir="${dir.lib}/native">
|
|
<include name="${arch}/**.dll" />
|
|
<include name="${arch}/**.dylib" />
|
|
<include name="${arch}/**.so" />
|
|
</fileset>
|
|
</copy>
|
|
|
|
<!-- create native lib jar -->
|
|
<jar destfile="${dir.dist}/webstart/native/${arch}.jar" basedir="${dir.dist}/webstart/native/${arch}" />
|
|
|
|
<!-- delete temp dir -->
|
|
<delete dir="${dir.dist}/webstart/native/${arch}" />
|
|
</target>
|
|
|
|
|
|
<target name="genkey">
|
|
<genkey alias="filebot" keystore="filebot.keystore" storepass="secret" validity="3650" dname="CN=${user.name}" />
|
|
</target>
|
|
|
|
|
|
<target name="build">
|
|
<!-- create build dir -->
|
|
<mkdir dir="${dir.build}" />
|
|
|
|
<!-- compile -->
|
|
<javac srcdir="${dir.source}:${dir.test}" destdir="${dir.build}" target="1.7" source="1.7" encoding="utf-8" debug="true" debuglevel="lines,vars,source" includeAntRuntime="false">
|
|
<classpath>
|
|
<fileset dir="${dir.lib}" includes="*.jar" />
|
|
<pathelement location="${dir.lib}/build/junit.jar" />
|
|
</classpath>
|
|
</javac>
|
|
|
|
<!-- copy resources -->
|
|
<copy todir="${dir.build}">
|
|
<fileset dir="${dir.source}">
|
|
<exclude name="**/*.java" />
|
|
</fileset>
|
|
</copy>
|
|
|
|
<!-- update application properties -->
|
|
<replace dir="${dir.build}" encoding="utf-8" summary="yes">
|
|
<include name="**/*.properties" />
|
|
<replacefilter token="@{svn.revision}" value="${svn.revision}" />
|
|
<replacefilter token="@{version}" value="${version}" />
|
|
</replace>
|
|
</target>
|
|
|
|
|
|
<target name="clean">
|
|
<delete dir="${dir.dist}" />
|
|
<delete dir="${dir.build}" />
|
|
</target>
|
|
|
|
|
|
<target name="test" depends="jar">
|
|
<junit printsummary="yes" fork="true">
|
|
<classpath>
|
|
<fileset dir="${dir.dist}" includes="*.jar" />
|
|
<fileset dir="${dir.lib}" includes="*.jar" />
|
|
<pathelement location="${dir.lib}/build/junit.jar" />
|
|
</classpath>
|
|
<formatter type="plain" />
|
|
<test name="net.filebot.AllTests" outfile="test-report" />
|
|
</junit>
|
|
</target>
|
|
|
|
|
|
<target name="test-fatjar" depends="fatjar">
|
|
<junit printsummary="yes" fork="true">
|
|
<classpath>
|
|
<pathelement location="${path.fatjar}" />
|
|
<pathelement location="${dir.dist}/filebot-test.jar" />
|
|
<pathelement location="${dir.lib}/build/junit.jar" />
|
|
</classpath>
|
|
<formatter type="plain" />
|
|
<test name="net.filebot.AllTests" outfile="test-report" />
|
|
</junit>
|
|
</target>
|
|
|
|
|
|
<target name="svn-update" depends="login">
|
|
<taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy" classpath="${dir.lib}/groovy.jar" />
|
|
<groovy>
|
|
properties['svn.revision'] = "svn update --password ${properties['sf.password']}".execute().text.split(/\n/).last().replaceAll(/\D/, '')
|
|
</groovy>
|
|
<fail unless="svn.revision" />
|
|
<echo>Revision: ${svn.revision}</echo>
|
|
</target>
|
|
|
|
|
|
<target name="deploy-release" depends="svn-update, fatjar, appbundle, deb, ipkg, msi, portable, webstart, login">
|
|
<mkdir dir="${dir.dist}/release" />
|
|
|
|
<!-- prepare release packages -->
|
|
<copy todir="${dir.dist}/release/${title}_${version}" file="${path.fatjar}" />
|
|
<copy todir="${dir.dist}/release/${title}_${version}" file="${path.appbundle.tar.gz}" />
|
|
<copy todir="${dir.dist}/release/${title}_${version}" file="${dir.dist}/filebot_${version}_i386.deb" />
|
|
<copy todir="${dir.dist}/release/${title}_${version}" file="${dir.dist}/filebot_${version}_amd64.deb" />
|
|
<copy todir="${dir.dist}/release/${title}_${version}" file="${dir.dist}/filebot_${version}_arm.ipk" />
|
|
<copy todir="${dir.dist}/release/${title}_${version}" file="${dir.dist}/filebot_${version}_i686.ipk" />
|
|
<copy todir="${dir.dist}/release/${title}_${version}" file="${dir.dist}/FileBot_${version}_x86.msi" />
|
|
<copy todir="${dir.dist}/release/${title}_${version}" file="${dir.dist}/FileBot_${version}_x64.msi" />
|
|
<copy todir="${dir.dist}/release/${title}_${version}" file="${dir.dist}/FileBot_${version}-portable.zip" />
|
|
|
|
<!-- deploy fatjar -->
|
|
<sleep seconds="5" />
|
|
<scp todir="${sf.user}:${sf.password}@${deploy.release}" trust="yes" verbose="true" sftp="true">
|
|
<fileset dir="${dir.dist}/release" includes="**/*.jar" />
|
|
</scp>
|
|
|
|
<!-- deploy portable application package -->
|
|
<sleep seconds="5" />
|
|
<scp todir="${sf.user}:${sf.password}@${deploy.release}" trust="yes" verbose="true" sftp="true">
|
|
<fileset dir="${dir.dist}/release" includes="**/*-portable.zip" />
|
|
</scp>
|
|
|
|
<!-- deploy windows installers -->
|
|
<sleep seconds="5" />
|
|
<scp todir="${sf.user}:${sf.password}@${deploy.release}" trust="yes" verbose="true" sftp="true">
|
|
<fileset dir="${dir.dist}/release" includes="**/*.msi" />
|
|
</scp>
|
|
|
|
<!-- deploy debian packages -->
|
|
<sleep seconds="5" />
|
|
<scp todir="${sf.user}:${sf.password}@${deploy.release}" trust="yes" verbose="true" sftp="true">
|
|
<fileset dir="${dir.dist}/release" includes="**/*.deb" />
|
|
</scp>
|
|
|
|
<!-- deploy ipkg packages -->
|
|
<sleep seconds="5" />
|
|
<scp todir="${sf.user}:${sf.password}@${deploy.release}" trust="yes" verbose="true" sftp="true">
|
|
<fileset dir="${dir.dist}/release" includes="**/*.ipk" />
|
|
</scp>
|
|
|
|
<!-- deploy osx app bundle -->
|
|
<sleep seconds="5" />
|
|
<scp todir="${sf.user}:${sf.password}@${deploy.release}" trust="yes" verbose="true" sftp="true">
|
|
<fileset dir="${dir.dist}/release" includes="**/*.app.tar.gz" />
|
|
</scp>
|
|
|
|
<!-- deploy webstart jars and jnlp descriptors -->
|
|
<scp todir="${sf.user}:${sf.password}@${deploy.website}/webstart" trust="yes" verbose="true" sftp="true">
|
|
<fileset dir="${dir.dist}/webstart" />
|
|
</scp>
|
|
</target>
|
|
|
|
|
|
<target name="deploy-website" depends="login">
|
|
<!-- prepare website resources -->
|
|
<copy todir="${dir.dist}/website">
|
|
<fileset dir="${dir.website}">
|
|
<include name="*.json" />
|
|
<include name="*.xml" />
|
|
<include name="*.php" />
|
|
<include name="*.html" />
|
|
<include name="*.css" />
|
|
<include name="*.js" />
|
|
<include name="*.png" />
|
|
<include name="*.ico" />
|
|
<include name="images/**" />
|
|
<include name="screenshots/**" />
|
|
<include name=".htaccess" />
|
|
</fileset>
|
|
</copy>
|
|
|
|
<!-- replace variables for new release -->
|
|
<replace dir="${dir.dist}/website" encoding="utf-8" summary="yes">
|
|
<include name="**/*.html" />
|
|
<include name="**/*.php" />
|
|
<replacefilter token="@{version}" value="${version}" />
|
|
</replace>
|
|
|
|
<!-- upload -->
|
|
<scp todir="${sf.user}:${sf.password}@${deploy.website}" trust="yes" verbose="true" sftp="true">
|
|
<fileset dir="${dir.dist}/website" />
|
|
</scp>
|
|
</target>
|
|
|
|
|
|
<target name="chocolatey-push" description="chocolatey package">
|
|
<copy todir="${dir.dist}/chocolatey">
|
|
<fileset dir="${dir.installer}/chocolatey" />
|
|
</copy>
|
|
|
|
<!-- replace variables for new release -->
|
|
<replace dir="${dir.dist}/chocolatey" encoding="utf-8" summary="yes">
|
|
<include name="**/*.ps1" />
|
|
<include name="**/*.nuspec" />
|
|
<replacefilter token="@{version}" value="${version}" />
|
|
</replace>
|
|
|
|
<!-- chocolatey pack -->
|
|
<exec executable="C:\Chocolatey\bin\chocolatey.bat" dir="${dir.dist}\chocolatey" failonerror="true">
|
|
<arg line="pack" />
|
|
</exec>
|
|
|
|
<exec executable="C:\Chocolatey\bin\chocolatey.bat" dir="${dir.dist}\chocolatey" failonerror="true">
|
|
<arg line="push ${dir.dist}\chocolatey\filebot.${version}.nupkg" />
|
|
</exec>
|
|
</target>
|
|
|
|
|
|
<target name="upload-data" depends="login">
|
|
<scp todir="${sf.user}:${sf.password}@${deploy.website}" trust="yes" verbose="true" sftp="true">
|
|
<fileset dir="${dir.website}">
|
|
<include name="data/.htaccess" />
|
|
<include name="data/*.txt" />
|
|
<include name="*.json" />
|
|
</fileset>
|
|
</scp>
|
|
</target>
|
|
|
|
|
|
<target name="upload-data-frs" depends="login">
|
|
<scp todir="${sf.user}:${sf.password}@${deploy.data.frs}" trust="yes" verbose="true" sftp="true">
|
|
<fileset dir="${dir.website}/data">
|
|
<include name="*.xz" />
|
|
<include name="*.gz" />
|
|
</fileset>
|
|
</scp>
|
|
</target>
|
|
|
|
|
|
<target name="deploy-test-package" depends="svn-update, fatjar, login">
|
|
<!-- deploy fatjar -->
|
|
<input message="Mark:" addproperty="mark" />
|
|
<scp file="${path.fatjar}" remoteTofile="${sf.user}:${sf.password}@${deploy.release}/HEAD/filebot-${version}-r${svn.revision}-${mark}.jar" trust="yes" verbose="true" sftp="true" />
|
|
<scp file="${path.fatjar}" remoteTofile="${sf.user}:${sf.password}@${deploy.release}/HEAD/FileBot.jar" trust="yes" verbose="true" sftp="true" />
|
|
</target>
|
|
|
|
|
|
<target name="login">
|
|
<!-- ask for sourceforge password -->
|
|
<input message="Please enter sourceforge username:" addproperty="sf.user" />
|
|
<input message="Please enter sourceforge password:" addproperty="sf.password" />
|
|
</target>
|
|
|
|
</project>
|