Code Search for Developers
 
 
  

build-dist-bflorat.xml from Jajuk at Krugle


Show build-dist-bflorat.xml syntax highlighted

<?xml version='1.0' encoding='UTF-8'?>
<!--Ant script for packagers only-->

<project default='all' name='jajuk' basedir='../..'>
	<!--VARIABLES-->

	<!--Distribution release-->
	<property name='version' value='1.4RC2' />

	<!--Previous release used for JNLP incremental upgrade-->
	<property name='previous_version' value='1.4RC1' />

	<!--Test flag: values: test or notest -->
	<property name='test' value='test' />

	<!-- ======================= -->
	<!-- | Configuration paths | -->
	<!-- ======================= -->

	<!-- Conf for bflorat server -->
	<property name='conf_izpackdir' value='/prog/IzPack' />
	<property name='conf_jsmoothgendir' value='/prog/jsmooth-0.9.7' />
	<property name='conf_javahelpdir' value='/prog/api/jh/javahelp' />
	<property name='conf_jnlp-dist' value='/data/java/jnlp-dist' />
	<property name='conf_homeuser' value='/home/bflorat' />
	

	<!-- ============================== -->
	<!-- | End of configuration paths | -->
	<!-- ============================== -->

	<!--CONST-->
	<property name='rootdir' value='/tmp/jajuk-dist' />
	<property name='distdir' value='${rootdir}/jajuk' />
	<property name='rpmbuilddir' value='${rootdir}/RPMBUILD' />
	<property name='rpmdistdir' value='${rpmbuilddir}/jajuk' />
	<property name='windowsdir' value='${rootdir}/windows' />
	<property name='izpackdir' value='${rootdir}/java' />
	<property name='sourcesdir' value='${rootdir}/sources' />
	<property name='libdir' value='lib' />
	<property name='distfiles' value='dist-files' />
	<property name='nativedir' value='native' />
	<property name='javadir' value='src/main/java' />
	<property name='classdir' value='classes' />
	<property name='javadocdir' value='dist-files/doc/javadoc' />
	<property name='jarname' value='jajuk.jar' />
	<property name='helpsetjarname' value='jajuk-help' />
	<property name='distjarname' value='jajuk-java-installer-' />
	<property name='sourcesdist' value='${sourcesdir}/jajuk-sources-${version}.zip' />
	<property name='helpdir' value='${rootdir}/help' />
	<!-- This is the intermediate directory used to build war file, we use a persisitent 
 	directory to use jar files in next war (each war contains current and previous jars for incremental upgrade) -->
	<property name='jnlpdir' value='${conf_jnlp-dist}/${version}' />
	<property name='previousjnlpdir' value='${conf_jnlp-dist}/${previous_version}' />
	<property name='srcdir' value='${basedir}/src' />
	<property name='uploaddir' value='${rootdir}/upload' />

	<target name='all' description='o Create the entire package' depends='startup,prepare_upload'>
	</target>

	<target name='startup'>
		<echo message='Building Jajuk release: ${version}' />
		<echo message='Basedir: ${basedir}' />
		<!--Prepare timestamp-->
		<tstamp>
			<format property="JAJUK_TIMESTAMP" pattern="yyyy-MM-dd HH:mm:ss" />
		</tstamp>
	</target>

	<target name='clean' description='o Clean up the distribution'>
		<delete dir='${rootdir}' />
		<delete dir='${jnlpdir}' />
	</target>

	<target name='mkdist' description='o Create the Jajuk distribution structure' depends='clean'>
		<mkdir dir='${rootdir}' />
		<mkdir dir='${distdir}' />
		<mkdir dir='${izpackdir}' />
		<mkdir dir='${windowsdir}' />
		<mkdir dir='${helpdir}' />
		<copy todir='${distdir}/lib'>
			<fileset dir='${libdir}' />
		</copy>
		<mkdir dir='${distdir}/bin' />
		<mkdir dir='${distdir}/${classdir}' />
		<copy todir='${distdir}/src'>
			<fileset dir='${javadir}' />
		</copy>
		<!--copy both README and LICENCE file in / for package distribution-->
		<copy todir='${distdir}'>
			<fileset file='${basedir}/src/doc/LICENSE.txt' />
			<fileset file='${basedir}/src/doc/README.html' />
		</copy>
		<!--copy both README and LICENCE file as must also be in src/ for source distribution-->
		<copy todir='${distdir}/src'>
			<fileset file='${basedir}/src/doc/LICENSE.txt' />
			<fileset file='${basedir}/src/doc/README.html' />
		</copy>

		<!--copy native dll to bin directory-->
		<copy todir='${distdir}/bin'>
			<fileset file='${basedir}/*.dll' />
		</copy>
		<copy todir='${distdir}/src'>
			<fileset file='${srcdir}/packaging/MANIFEST.MF' />
		</copy>
		<copy todir='${distdir}'>
			<fileset file='${srcdir}/scripts/build.xml' />
		</copy>
		<mkdir dir='${distdir}/dist-files' />
		<copy todir='${distdir}/dist-files/icons'>
			<fileset file='${srcdir}/main/resources/icons/**' />
		</copy>
		<copy todir='${distdir}/dist-files/images'>
			<fileset file='${srcdir}/main/resources/images/**' />
		</copy>
		<copy todir='${distdir}/dist-files/perspectives'>
			<fileset file='${srcdir}/main/resources/perspectives/**' />
		</copy>
		<copy todir='${distdir}'>
			<fileset file='${srcdir}/main/resources/icons/64x64/jajuk-icon-shortcut_64x64.png' />
			<fileset file='${srcdir}/main/resources/icons/16x16/jajuk-uninstall.png' />
		</copy>
		<copy todir='${distdir}'>
			<fileset file='${srcdir}/scripts/jajuk' />
			<fileset file='${srcdir}/scripts/jajuk.bat' />
		</copy>
		<chmod file='${distdir}/jajuk' perm='ugo+rx' />

		<!--Windows specific -->
		<copy todir='${windowsdir}'>
			<fileset file='${srcdir}/packaging/native_launcher/*' />
		</copy>

		<!--Izpack specific -->
		<copy todir='${izpackdir}'>
			<fileset file='${srcdir}/packaging/IzPack/jajuk.izpack' />
			<fileset file='${srcdir}/packaging/IzPack/shortcutSpec.xml' />
			<fileset file='${srcdir}/packaging/IzPack/installDirectory.unix.txt' />
		</copy>

		<!--RPM specific-->
		<!-- Create structure-->
		<mkdir dir='${rootdir}' />
		<mkdir dir='${rpmbuilddir}' />
		<mkdir dir='${rpmbuilddir}/tmp' />
		<mkdir dir='${rpmbuilddir}/SRMPS' />
		<mkdir dir='${rpmbuilddir}/RPMS' />
		<mkdir dir='${rpmbuilddir}/SPECS' />
		<mkdir dir='${rpmbuilddir}/BUILD' />
		<mkdir dir='${rpmdistdir}' />
		<mkdir dir='${rpmdistdir}/usr/bin' />
		<mkdir dir='${rpmdistdir}/usr/lib/jajuk/bin' />
		<mkdir dir='${rpmdistdir}/usr/lib/jajuk/lib' />
		<mkdir dir='${rpmdistdir}/usr/lib/jajuk/lib/linux' />
		<mkdir dir='${rpmdistdir}/usr/lib/jajuk/native' />
		<mkdir dir='${rpmdistdir}/usr/share/applications' />
		<mkdir dir='${rpmdistdir}/usr/share/doc/packages/jajuk' />
		<mkdir dir='${rpmdistdir}/usr/share/pixmaps' />

		<!-- Copy files -->
		<!--RPM-->
		<copy todir='${rpmbuilddir}/SPECS'>
			<fileset file='${srcdir}/packaging/RPMS/jajuk.spec' />
		</copy>
		<copy todir='${rpmdistdir}/usr/bin'>
			<fileset file='${srcdir}/scripts/jajuk' />
		</copy>
		<!--DO SOMETHING BETTER HERE -->
		<copy todir='${rpmdistdir}/usr/lib/jajuk/lib'>
			<fileset file="${basedir}/lib/*.jar" />
		</copy>
		<copy todir='${rpmdistdir}/usr/lib/jajuk/lib/linux'>
			<fileset file="${basedir}/lib/linux/*" />
		</copy>
		<copy todir='${rpmdistdir}/usr/lib/jajuk/lib/linux/x86'>
			<fileset file="${basedir}/lib/linux/x86/*" />
		</copy>
		<!--/DO SOMETHING BETTER HERE -->
		<copy todir='${rpmdistdir}/usr/share/applications'>
			<fileset file='${srcdir}/packaging/RPMS/Jajuk.desktop' />
		</copy>
		<copy todir='${rpmdistdir}/usr/share/doc/packages/jajuk'>
			<fileset file='${basedir}/src/doc/README.html' />
			<fileset file='${basedir}/src/doc/LICENSE.txt' />
		</copy>
		<copy todir='${rpmdistdir}/usr/share/pixmaps'>
			<fileset file='${srcdir}/main/resources/icons/64x64/jajuk-icon-shortcut_64x64.png' />
		</copy>
	</target>

	<target name='compile' description='o Compile the code' depends='mkdist,replaces'>
		<javac destdir='${distdir}/${classdir}' source='1.5' target='1.5' deprecation='true' debug='true' optimize='true' excludes='**/package.html'>
			<src>
				<pathelement path='${distdir}/src'>
				</pathelement>
			</src>
			<classpath>
				<fileset dir='${distdir}/lib'>
					<include name='*.jar'>
					</include>
				</fileset>
			</classpath>
		</javac>
		<mkdir dir='${distdir}/${classdir}/icons' />
		<mkdir dir='${distdir}/${classdir}/images' />
		<mkdir dir='${distdir}/${classdir}/perspectives' />
		<mkdir dir='${distdir}/${classdir}/docs' />
		<!-- Copy files to be embeded into the jar -->
		<copy todir='${distdir}/${classdir}/icons'>
			<fileset dir='${srcdir}/main/resources/icons' />
		</copy>
		<copy todir='${distdir}/${classdir}/images/included'>
			<fileset file='${srcdir}/main/resources/images/included/*' />
		</copy>
		<copy todir='${distdir}/${classdir}/docs'>
			<fileset file='${srcdir}/doc/about.html' />
		</copy>
		<copy todir='${distdir}/${classdir}/org/jajuk/i18n'>
			<fileset file='${javadir}/org/jajuk/i18n/*.properties' />
		</copy>
		<copy todir='${distdir}/${classdir}/org/jajuk/util/log'>
			<fileset file='${javadir}/org/jajuk/util/log/jajuk-log4j-conf.xml' />
		</copy>
		<copy todir='${distdir}/${classdir}/perspectives'>
			<fileset file='${srcdir}/main/resources//perspectives/*.xml' />
		</copy>
	</target>

	<target name='jar' description='o Create the jar' depends='compile'>
		<jar jarfile='${distdir}/bin/${jarname}' excludes='**/package.html' manifest='${srcdir}/packaging/MANIFEST.MF' compress='true'>
			<fileset dir='${distdir}/${classdir}' />
		</jar>
		<!--Sign jajuk jars (others are signed manually once) -->
		<!--for security reason (this file is commited with keystore password), 
    keystore password is changed after this script execution, password is temporary -->
		<signjar jar="${distdir}/bin/${jarname}" alias="jajukteam" storepass="passpass" />

		<delete dir='${distdir}/${classdir}' />
		<!-- Copy jajuk jar in the RPM distdir -->
		<copy todir='${rpmdistdir}/usr/lib/jajuk/bin'>
			<fileset file='${distdir}/bin/${jarname}' />
		</copy>
	</target>

	<target name='helpsetjar' description='o Create the heplset jar' depends='mkdist'>
		<!--Copy-->
		<copy todir='${helpdir}'>
			<fileset dir='${srcdir}/doc/jajuk-hs' />
		</copy>
		<copy todir='${helpdir}/default'>
			<fileset dir='${srcdir}/doc'>
				<include name='images/**' />
				<include name='icons/**' />
			</fileset>
		</copy>
		<copy todir='${helpdir}/fr'>
			<fileset dir='${srcdir}/doc'>
				<include name='images/**' />
				<include name='icons/**' />
			</fileset>
		</copy>
		<!-- indexer -->
		<!--English-->
		<exec executable='${conf_javahelpdir}/bin/jhindexer' dir='${helpdir}/default'>
			<arg line='-locale en_US html' />
		</exec>
		<!--French-->
		<exec executable='${conf_javahelpdir}/bin/jhindexer' dir='${helpdir}/fr'>
			<arg line='-locale fr_FR html' />
		</exec>
		<!-- jar creation -->
		<jar jarfile='${distdir}/bin/${helpsetjarname}.jar' basedir='${helpdir}/default' />
		<signjar jar="${distdir}/bin/${helpsetjarname}.jar" alias="jajukteam" storepass="passpass" />
		<jar jarfile='${distdir}/bin/${helpsetjarname}_fr.jar' basedir='${helpdir}/fr' />
		<signjar jar="${distdir}/bin/${helpsetjarname}_fr.jar" alias="jajukteam" storepass="passpass" />
		<!-- Copy jajuk helpset jars in the RPM distdir -->
		<copy todir='${rpmdistdir}/usr/lib/jajuk/bin'>
			<fileset file='${distdir}/bin/${helpsetjarname}*.jar' />
		</copy>
		<!-- Copy jajuk jar in the workspace -->
		<copy todir='${basedir}'>
			<fileset file='${distdir}/bin/${helpsetjarname}*.jar' />
		</copy>
	</target>

	<target name='sourcesdist' description='o Create the source distribution' depends='mkdist,helpsetjar'>
		<mkdir dir='${sourcesdir}' />
		<mkdir dir='${sourcesdir}/jajuk-src-${version}' />
		<copy todir='${sourcesdir}/jajuk-src-${version}'>			
			<fileset dir='${distdir}/dist-files' />
		</copy>
		<mkdir dir='${sourcesdir}/jajuk-src-${version}/src' />
		<copy todir='${sourcesdir}/jajuk-src-${version}/src'>
			<fileset dir='${distdir}/src' />
		</copy>
		<!-- Copy Jajuk documentation in doc/ -->
		<mkdir dir='${sourcesdir}/jajuk-src-${version}/doc' />
		<copy todir='${sourcesdir}/jajuk-src-${version}/doc'>
			<fileset dir='${helpdir}' />
		</copy>
		<zip basedir='${sourcesdir}' destfile='${sourcesdist}' />
	</target>

	<target name='replaces' description='o Set a the build time and release into jajuk code and packaging' depends='mkdist'>
		<!-- Set build date -->
		<tstamp>
			<format property='build.time' pattern='yyyy/MM/dd HH:mm' />
		</tstamp>
		<echo message='Build time: ${build.time}' />
		<replace dir='${distdir}/src/org/jajuk/util' value='${build.time}'>
			<include name='ITechnicalStrings.java' />
			<replacetoken>DATE_REPLACED_BY_ANT</replacetoken>
		</replace>
		<!-- Set release in code-->
		<replace dir='${distdir}/src/org/jajuk/util' value='${version}'>
			<include name='ITechnicalStrings.java' />
			<replacetoken>VERSION_REPLACED_BY_ANT</replacetoken>
		</replace>
		<!-- Set release in IzPack descriptor file-->
		<replace dir='${izpackdir}' value='${version}'>
			<include name='jajuk.izpack' />
			<replacetoken>VERSION_REPLACED_BY_ANT</replacetoken>
		</replace>
		<!-- Set release in native launcher descriptor file-->
		<replace dir='${windowsdir}' value='${version}'>
			<include name='jajuk.jsmooth' />
			<replacetoken>VERSION_REPLACED_BY_ANT</replacetoken>
		</replace>
		<!-- Set release in RPM descriptor file-->
		<replace dir='${rpmbuilddir}/SPECS' value='${version}'>
			<include name='jajuk.spec' />
			<replacetoken>VERSION_REPLACED_BY_ANT</replacetoken>
		</replace>
		<!-- Set release in user build.xml file-->
		<replace dir='${distdir}' value='${version}'>
			<include name='build.xml' />
			<replacetoken>VERSION_REPLACED_BY_ANT</replacetoken>
		</replace>
		<!-- Set debug value in scripts-->
		<replace dir='${distdir}' value='-${test}'>
			<include name='jajuk' />
			<include name='jajuk.bat' />
			<replacetoken>TEST_FLAG_REPLACED_BY_ANT</replacetoken>
		</replace>
		<replace dir='${rpmdistdir}/usr/bin' value='-${test}'>
			<include name='jajuk' />
			<replacetoken>TEST_FLAG_REPLACED_BY_ANT</replacetoken>
		</replace>
		<replace dir='${izpackdir}' value='-${test}'>
			<include name='shortcutSpec.xml' />
			<replacetoken>TEST_FLAG_REPLACED_BY_ANT</replacetoken>
		</replace>
	</target>


	<target name='javadoc'>
		<delete dir='${javadocdir}' />
		<mkdir dir='${javadocdir}' />
		<property name='copyright' value='Copyright &amp;copy;  Jajuk team. All Rights Reserved.' />
		<javadoc destdir='${javadocdir}' access='private' use='true' notree='false' nonavbar='false' noindex='false' splitindex='true' author='true' version='true' nodeprecatedlist='false' nodeprecated='false' packagenames='org.jajuk.base,org.jajuk.ui.views,org.jajuk,org.jajuk.i18n,org.jajuk.ui.perspectives,org.jajuk.util.log,org.jajuk.ui,org.jajuk.util,org.jajuk.util.error,org.jajuk.players' sourcepath='src' source='1.5' Windowtitle='Jajuk ${version} API'>
			<classpath>
				<fileset dir='${libdir}'>
					<include name='*.jar'>
					</include>
				</fileset>
				<pathelement location='target/${final.name}.jar' />
			</classpath>
		</javadoc>
	</target>

	<target name='rpm' depends='jar,helpsetjar'>
		<!-- rights-->
		<chmod file='${rpmdistdir}/usr/bin/jajuk' perm='ugo+rx' />
		<chmod file='${rpmdistdir}/usr/share/applications/Jajuk.desktop' perm='ugo+rwx' />

		<!--RPM, see http://forgeftp.novell.com//library/SUSE%20Package%20Conventions/spc_desktop_menu.html-->
		<copy todir='${conf_homeuser}' overwrite='yes'>
			<fileset file='${srcdir}/packaging/RPMS/.rpmmacros' />
		</copy>
		<rpm specFile='jajuk.spec' topDir='${rpmbuilddir}' cleanBuildDir='yes' removeSpec='no' command='-bb' />
	</target>

	<!--IzPack package creation -->
	<taskdef name='izpack' classpath='${conf_izpackdir}/lib/compiler.jar' classname='com.izforge.izpack.ant.IzPackTask' />
	<target name='izpack' depends='jar,helpsetjar'>
		<echo message='Makes the installer using IzPack' />
		<izpack input='${izpackdir}/jajuk.izpack' output='${izpackdir}/${distjarname}${version}.jar' basedir='${srcdir}' izPackDir='${conf_izpackdir}' />
	</target>

	<target name='jnlp' description='o Create the Java Web Start war distribution' depends='jar,helpsetjar'>
		<!--Note that all jars (including jajuk-native.jar must be signed with the same certificate), we do this manually -->
		<!-- Unlike standalone distributions, JNLP have to use JDIC platform distributions jars, browser will
	not work with cross-platform distributions-->
		<mkdir dir='${jnlpdir}' />
		<mkdir dir='${jnlpdir}/app' />
		<mkdir dir='${jnlpdir}/app/windows' />
		<mkdir dir='${jnlpdir}/app/linux' />
		<!--Copy current jars -->
		<copy todir='${jnlpdir}/app'>
			<fileset file='${distdir}/lib/*.jar' />
		</copy>
		<copy todir='${jnlpdir}/app'>
			<fileset file='${distdir}/bin/*.jar' />
		</copy>
		<copy todir='${jnlpdir}/app'>
			<fileset file='${srcdir}/packaging/jnlp/*.jnlp' />
		</copy>
		<copy todir='${jnlpdir}/app'>
			<fileset file='${srcdir}/packaging/jnlp/*.gif' />
		</copy>
		<copy todir='${jnlpdir}/app'>
			<fileset file='${srcdir}/main/resources/images/included/jajuk-splashscreen.jpg' />
		</copy>
		<!--Copy native jars -->
		<copy todir='${jnlpdir}/app/linux'>
			<fileset file='${srcdir}/packaging/jnlp/linux/*.jar' />
		</copy>
		<copy todir='${jnlpdir}/app/windows'>
			<fileset file='${srcdir}/packaging/jnlp/windows/*.jar' />
		</copy>
		<replace dir='${jnlpdir}/app' value='${test}'>
			<include name='launch.jnlp' />
			<replacetoken>TEST_FLAG_REPLACED_BY_ANT</replacetoken>
		</replace>
		<!-- Rename all jars to add JNLP-way release: <name>__V<release>.jar -->
		<move todir="${jnlpdir}">
			<fileset dir="${jnlpdir}">
				<include name="**/*.jar" />
			</fileset>
			<mapper type="glob" from="*.jar" to="*__V${version}.jar" />
		</move>

		<!-- Set release in user jnlp file-->
		<replace dir='${jnlpdir}/app' value='${version}'>
			<include name='*.jnlp' />
			<replacetoken>VERSION_REPLACED_BY_ANT</replacetoken>
		</replace>
		<!-- Set test or no test in jnlp file-->
		<replace dir='${jnlpdir}/app' value='${test}'>
			<include name='*.jnlp' />
			<replacetoken>TEST_FLAG_ REPLACED_BY_ANT</replacetoken>
		</replace>

		<!--Copy previous release jars, comment this if you have no previous release-->
		<copy todir='${jnlpdir}/app'>
			<fileset dir="${previousjnlpdir}/app">
				<include name="**/*.jar" />
			</fileset>
		</copy>
		
		<!-- Create the war file -->
		<war destfile='${rootdir}/jajuk-${test}.war' webxml='${srcdir}/packaging/jnlp/web.xml'>
			<fileset dir='${jnlpdir}' />
			<lib file='${srcdir}/packaging/jnlp/jnlp-servlet.jar' />
		</war>
	</target>


	<!-- Windows EXE creation-->
	<taskdef name="jsmoothgen" classname="net.charabia.jsmoothgen.ant.JSmoothGen" classpath="${conf_jsmoothgendir}/lib/jsmoothgen-ant.jar" />
	<target name='sfx' depends='izpack'>
		<jsmoothgen project="/tmp/jajuk-dist/windows/jajuk.jsmooth" skeletonroot="${conf_jsmoothgendir}/skeletons" />
	</target>

	<target name='prepare_upload' description='o Put all generated packages in the same upload directory' depends='izpack,rpm,sourcesdist,sfx,jnlp'>
		<mkdir dir='${uploaddir}' />
		<copy todir='${uploaddir}'>
			<fileset file='${sourcesdist}' />
			<fileset file='${rpmbuilddir}/RPMS/noarch/*' />
			<fileset file='${windowsdir}/jajuk-${version}-win32.exe' />
			<fileset file='${izpackdir}/jajuk-java-installer-${version}.jar' />
			<fileset file='${distdir}/jajuk-macosx-${version}.zip' />
		</copy>

		<!-- Generate MD5 http://ant.apache.org/manual/CoreTasks/checksum.html -->
		<checksum file="${uploaddir}/jajuk-sources-${version}.zip" forceOverwrite="yes" fileext=".md5" />
		<checksum file="${uploaddir}/jajuk-${version}.noarch.rpm" forceOverwrite="yes" fileext=".md5" />
		<checksum file="${uploaddir}/jajuk-${version}-win32.exe" forceOverwrite="yes" fileext=".md5" />
		<checksum file="${uploaddir}/jajuk-java-installer-${version}.jar" forceOverwrite="yes" fileext=".md5" />
		
		<!-- Generate SHA http://ant.apache.org/manual/CoreTasks/checksum.html -->
		<checksum file="${uploaddir}/jajuk-sources-${version}.zip" forceOverwrite="yes" algorithm="SHA" fileext=".asc" />
		<checksum file="${uploaddir}/jajuk-${version}.noarch.rpm" forceOverwrite="yes" algorithm="SHA" fileext=".asc" />
		<checksum file="${uploaddir}/jajuk-${version}-win32.exe" forceOverwrite="yes" algorithm="SHA" fileext=".asc" />
		<checksum file="${uploaddir}/jajuk-java-installer-${version}.jar" forceOverwrite="yes" algorithm="SHA" fileext=".asc" />
	</target>

</project>




See more files for this project here

Jajuk

Jajuk is a jukebox for all platforms. The main goal of this project is to provide a fully-featured application to advanced users with large or scattered music collections.

Project homepage: http://sourceforge.net/projects/jajuk
Programming language(s): Java,XML
License: other

  build-dist-bflorat.xml
  build-dist.xml
  build.xml
  jajuk
  jajuk.bat
  jajuk.sh