Ultimátní detekce OS v Apache ANT
ANT dokáže rozpoznat relativně snadno nad jakým OS byl právě spuštěn. Tahle vlastnost se Vám bude hodit zejména tehdy, pokud budete nuceni spouštět příkazy závisle na platformě.
Při detekci OS jsem narazil na drobný problém se správným rozpoznáním Mac OS X a Linux (oba jsou na UNIX jádru) – to se vyřešilo složitější podmínkou. V závěru ANT skriptu najdete také příklad použití.
<project name="osDetect">
<!-- Mac OS X based -->
<condition property="isMac">
<os family="mac"/>
</condition>
<!-- Mac OS but not OS X -->
<condition property="isMacButNotMacOsX">
<and>
<os family="mac"/>
<not>
<os family="unix"/>
</not>
</and>
</condition>
<!-- UNIX based system (unix, max os x) -->
<condition property="isUnix">
<os family="unix"/>
</condition>
<!-- Linux BASED system -->
<condition property="isLinux">
<and>
<os family="unix"/>
<not>
<os family="mac"/>
</not>
</and>
</condition>
<target name="-linux.run" if="isLinux">
<echo> je to Linux </echo>
</target>
<target name="-mac.run" if="isMac">
<echo> je to Mac </echo>
</target>
<target name="run" depends="-linux, -mac.run" />
</project>
Tip: jméno právě používaného OS můžete získat z proměnné os.name
<target name="os">
<echo>${os.name}</echo>
</target>
Instalace Node.js na Mac OS X pomocí macport
Instalace node.js
Máte nainstalovaný Xcode a MacPort? Fajn. Můžete pokračovat. Nejprve si zaktualizujte port:
sudo port selfupdate
Pak spusťte samotnou instalaci node.js
sudo port install nodejs
Nakonec nastavte svému uživateli přístupová práva zápisu ke složce /opt/local.
sudo chmod -R g+w /opt/local/
Instalace Node Package Manageru
npm je balčkovací manažer pro node.js, který Vám umožní snadno instalovat jednotlivé node balíčky vč. jejich závislostí (vyhledávač balíčků). Nainstalujete jej pomocí install.sh skriptu následovně:
curl http://npmjs.org/install.sh | sh
Na závěr ověřte, že node.js i npm fungují správně:
node -v # vypise v0.6.15 npm -v # vypise 1.1.16
Google Closure Compiler v Apache ANT
Apache ANT a Google Closure Compiler je možné snadno propojit. Stáhněte si compiler.jar a do svého antího build skriptu přidejte:
<taskdef name="jscomp" classname="com.google.javascript.jscomp.ant.CompileTask" classpath="build/Google-Closure-Compiler/compiler.jar"/>
Touto definicí získáte nový target jscomp, který pak stačí zavolat nad vašimi JavaScripty:
<jscomp compilationLevel="simple" warning="quiet" debug="false" output="/js/main.min.js"> <sources dir="/js-src/"> <file name="main.js"/> <file name="plugins.js"/> </sources> </jscomp>
Odkazy: