IPKs ist ein Akronym für „Itsy Package Management System“ (engl., „Klitzekleines Paket Verwaltungs System“). Diese Datei ist ein „ar“ Archiv welches mehrere Dateien enthält.

Bei der Entwicklung von WebOS Apps kann, wenn das „Palm webOS Software Development Kit“ installiert ist, über den Konsolen-Befehl „palm-package“ eine .ipk Datei generiert werden.

Dieser Prozess kann auch einfach und schnell (z. B. aus der Eclipse IDE) über dieses Ant-Script ausgeführt werden.

<?xml version="1.0" encoding="UTF-8"?>
<project name="MyProject" default="build" basedir=".">
	
    <property name="appName" value="${ant.project.name}"/>
    <property name="appVer" value="1.0.0"/>
	<property name="ipkFileName" value="${appName}_${appVer}_all.ipk" />
	
	<property name="fsep" value="${file.separator}" />
	
	<!-- Windows default path C:\Program Files\Palm\SDK\bin -->
	<property name="palm_binDir_Win" value="C:${fsep}Program Files${fsep}Palm${fsep}SDK${fsep}bin"/>
	
	<!-- Unix default path /opt/PalmSDK/Current/bin -->
	<property name="palm_binDir_Unix" value="${fsep}opt${fsep}PalmSDK${fsep}Current${fsep}bin"/>
	
    <property name="buildDir" value="build"/>
	<property name="srcDir" value="."/>
	
	
    <target name="load-appinfo">
        <loadfile srcfile="${srcDir}${fsep}appinfo.json" property="appinfo"/>
        <script language="javascript"><![CDATA[
            info = eval('(' + appinfo + ')');
            self.getProject().setProperty('appName', info.id);
            self.getProject().setProperty('appVer', info.version);
        ]]></script>
        <echo message="ID: ${appName}"/>
		<echo message="Version: v${appVer}" />
    </target>

    <condition property="is-windows"><os family="windows"/></condition>

    <condition property="is-unix"><os family="unix"/></condition>

    <target name="os-check-windows" if="is-windows">
        <property name="palm-package" value="${palm_binDir_Win}${fsep}palm-package.bat"/>
        <property name="palm-install" value="${palm_binDir_Win}${fsep}palm-install.bat"/>
        <property name="palm-launch" value="${palm_binDir_Win}${fsep}palm-launch.bat"/>
        <property name="palm-log" value="${palm_binDir_Win}${fsep}palm-log.bat"/>
    </target>

    <target name="os-check-unix" if="is-unix">
        <property name="palm-package" value="${palm_binDir_Unix}${fsep}palm-package"/>
        <property name="palm-install" value="${palm_binDir_Unix}${fsep}palm-install"/>
        <property name="palm-launch" value="${palm_binDir_Unix}${fsep}palm-launch"/>
        <property name="palm-log" value="${palm_binDir_Unix}${fsep}palm-log"/>
    </target>

    <target name="os-check" depends="load-appinfo, os-check-unix, os-check-windows"/>

    <target name="clean"><delete dir="${buildDir}"/></target>

    <target name="clean-build" depends="clean, build"/>

    <target name="build" depends="os-check">
        <mkdir dir="${buildDir}"/>
        <exec executable="${palm-package}" osfamily="unix">
            <arg value="-o"/>
            <arg value="${buildDir}"/>
            <arg value="--exclude"/>
            <arg value="${buildDir}"/>
            <arg value="--exclude"/>
            <arg value="build.xml"/>					
            <arg value="${srcDir}"/>
        </exec>
        <exec executable="cmd" osfamily="windows">
            <arg value="/c"/>
            <arg value="${palm-package}"/>
            <arg value="-o"/>
            <arg value="${buildDir}"/>
            <arg value="--exclude"/>
            <arg value="${buildDir}"/>
            <arg value="--exclude"/>
            <arg value="build.xml"/>						
            <arg value="${srcDir}"/>
        </exec>
    </target>

    <target name="install" depends="os-check, build">
        <exec executable="${palm-install}" osfamily="unix">
            <arg file="${buildDir}${fsep}${ipkFileName}"/>
        </exec>
        <exec executable="cmd" osfamily="windows">
            <arg value="/c"/>
            <arg file="${palm-install}"/>
            <arg file="${buildDir}${fsep}${ipkFileName}"/>
        </exec>
    </target>

    <target name="log" depends="os-check">
        <exec executable="${palm-log}" osfamily="unix">
            <arg value="-f"/>
            <arg value="${appName}"/>
        </exec>
        <exec executable="cmd" osfamily="windows">
            <arg value="/c"/>
            <arg value="${palm-log}"/>
            <arg value="-f"/>
            <arg value="${appName}"/>
        </exec>
    </target>

    <target name="run" depends="os-check, install">
        <exec executable="${palm-launch}" osfamily="unix">
            <arg value="-p"/>
            <arg value="{mojoConfig:true,debuggingEnabled:true}"/>
            <arg value="${appName}"/>
        </exec>
        <exec executable="cmd" osfamily="windows">
            <arg value="/c"/>
            <arg value="${palm-launch}"/>
            <arg value="-p"/>
            <arg value="{mojoConfig:true,debuggingEnabled:true}"/>
            <arg value="${appName}"/>
        </exec>
    </target>
</project> 
IPK Datei über Ant Script erstellen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert