@extjs/sencha-cmd-linux-32
Version:
Productivity and performance optimization tool for building applications with Sencha Ext JS and Sencha Touch.
229 lines (202 loc) • 9.47 kB
text/xml
<!--
Copyright (c) 2012-2013, Sencha Inc.
This file is a Sencha Cmd plugin that provides support for packages.
-->
<project name="cmd-package-plugin">
<!--
<target name="init-plugin">
nothing to do here... yet
</target>
-->
<target name="init-package-plugin">
<property name="senchadir" value=".sencha"/>
</target>
<!-- ****************************************************************** -->
<target name="generate-package" depends="init-package-plugin">
<echo>Generating package ${args.name} of type ${args.type} to ${args.path}</echo>
<local name="ext.rel.path"/>
<local name="touch.rel.path"/>
<x-get-relative-path from="${args.path}" to="${ext.dir}"
property="ext.rel.path"/>
<x-get-relative-path from="${args.path}" to="${touch.dir}"
property="touch.rel.path"/>
<x-generate dir="${cmd.dir}/templates/SenchaCommon"
todir="${args.path}/${senchadir}/package"
store="${args.path}/${senchadir}/package/codegen.json"
basedir="${args.path}">
<param name="pkgName" value="${args.name}"/>
<param name="pkgType" value="${args.type}"/>
<param name="extRelPath" value="${ext.rel.path}"/>
<param name="touchRelPath" value="${touch.rel.path}"/>
<param name="senchadir" value="${senchadir}"/>
</x-generate>
<x-generate dir="${cmd.dir}/templates/package" todir="${args.path}"
store="${args.path}/${senchadir}/package/codegen.json"
basedir="${args.path}">
<param name="pkgName" value="${args.name}"/>
<param name="pkgType" value="${args.type}"/>
<param name="pkgFramework" value="${args.framework}"/>
<param name="pkgTheme" value="${args.theme}"/>
<param name="pkgExtend" value="${args.extend}" />
<param name="pkgToolkit" value="${args.toolkit}" />
<param name="pkgNamespace" value="${args.namespace}" />
<param name="extRelPath" value="${ext.rel.path}"/>
<param name="touchRelPath" value="${touch.rel.path}"/>
<param name="senchadir" value="${senchadir}"/>
</x-generate>
<x-generate dir="${cmd.dir}/templates/starter-package" todir="${args.path}"
store="${args.path}/${senchadir}/package/codegen.json"
basedir="${args.path}">
<param name="pkgName" value="${args.name}"/>
<param name="pkgType" value="${args.type}"/>
<param name="extRelPath" value="${ext.rel.path}"/>
<param name="touchRelPath" value="${touch.rel.path}"/>
<param name="senchadir" value="${senchadir}"/>
</x-generate>
<if>
<equals arg1="${args.isext6}" arg2="true" />
<then>
<x-generate dir="${framework.config.dir}/templates/starter-package" todir="${args.path}"
store="${args.path}/${senchadir}/package/codegen.json"
basedir="${args.path}">
<param name="pkgName" value="${args.name}"/>
<param name="pkgType" value="${args.type}"/>
<param name="extRelPath" value="${ext.rel.path}"/>
<param name="touchRelPath" value="${touch.rel.path}"/>
<param name="senchadir" value="${senchadir}"/>
</x-generate>
</then>
</if>
<if>
<not>
<equals arg1="${args.type}" arg2="theme" />
</not>
<then>
<delete file="${args.path}/overrides/init.js" />
</then>
</if>
<x-property-file file="${args.path}/${senchadir}/package/sencha.cfg">
<entry type="string" key="package.cmd.version" operation="="
value="${cmd.version}"/>
</x-property-file>
</target>
<target name="package-add-to-requires">
<if>
<equals arg1="${args.addToRequires}" arg2="true" />
<then>
<local name="app.json.package.data" />
<if>
<not>
<resourcecontains resource="${app.dir}/app.json" substring=""${args.name}"" />
</not>
<then>
<x-echo level="info">Adding package ${args.name} as app dependency</x-echo>
<if>
<resourcecontains resource="${app.dir}/app.json" substring=""requires"" />
<then>
<property name="app.json.package.data"><![CDATA[
"${args.name}"
]]]></property>
<replaceregexp file="${app.dir}/app.json" match="("requires"\s*:\s*\[\s*)(((".*")\,*\s*)*)(\s*\])" replace="\1\2${app.json.package.data}" />
<replaceregexp file="${app.dir}/app.json" match=""\s*\n\s*"" replace=""\,${line.separator} "" />
</then>
<else>
<property name="app.json.package.data"><![CDATA[{
/**
* The list of required packages (with optional versions; default is "latest").
*
* For example,
*
* "requires": [
* "charts"
* ]
*/
"requires": [
"${args.name}"
],
]]></property>
<replaceregexp file="${app.dir}/app.json" match="\{" replace="${app.json.package.data}" />
</else>
</if>
</then>
</if>
</then>
</if>
</target>
<!-- ****************************************************************** -->
<target name="package-build" depends="init-package-plugin">
<!--default some variables to empty string if not supplied-->
<property name="package.base.names" value=""/>
<property name="package.requires.names" value=""/>
<if>
<isset property="args.clean"/>
<then>
<ant dir="${package.dir}"
inheritall="true"
inheritrefs="true">
<target name="clean"/>
<target name="build"/>
</ant>
</then>
<else>
<ant dir="${package.dir}"
inheritall="true"
inheritrefs="true">
<target name="build"/>
</ant>
</else>
</if>
</target>
<!-- ****************************************************************** -->
<target name="package-upgrade" depends="init-package-plugin">
<echo>Upgrading package ${args.name} ...</echo>
<local name="ext.rel.path"/>
<local name="touch.rel.path"/>
<x-get-relative-path from="${args.path}" to="${ext.dir}"
property="ext.rel.path"/>
<x-get-relative-path from="${args.path}" to="${touch.dir}"
property="touch.rel.path"/>
<x-generate dir="${cmd.dir}/templates/SenchaCommon"
todir="${args.path}/${senchadir}/package"
store="${args.path}/${senchadir}/package/codegen.json"
basedir="${args.path}">
<param name="pkgName" value="${args.name}"/>
<param name="pkgType" value="${args.type}"/>
<param name="extRelPath" value="${ext.rel.path}"/>
<param name="touchRelPath" value="${touch.rel.path}"/>
<param name="senchadir" value="${senchadir}"/>
</x-generate>
<x-generate dir="${cmd.dir}/templates/package"
todir="${args.path}"
store="${args.path}/${senchadir}/package/codegen.json"
basedir="${args.path}">
<param name="pkgName" value="${args.name}"/>
<param name="pkgType" value="${args.type}"/>
<param name="extRelPath" value="${ext.rel.path}"/>
<param name="touchRelPath" value="${touch.rel.path}"/>
<param name="senchadir" value="${senchadir}"/>
</x-generate>
<x-property-file file="${args.path}/${senchadir}/package/sencha.cfg">
<entry type="string"
operation="="
key="package.cmd.version"
value="${cmd.version}"/>
</x-property-file>
<if>
<x-is-true value="${args.shouldAddNamespace}" />
<then>
<local name="package.namespace.content" />
<property name="package.namespace.content"><![CDATA[{
/**
* The namespace of this package.
*
* As a general rule, all classes that belong to this package should be under this namespace
* if multiple namespaces are part of this package, set this to "".
*/
"namespace": "${args.namespace}",
]]></property>
<replaceregexp file="${args.path}/package.json" match="\{" replace="${package.namespace.content}" />
</then>
</if>
</target>
</project>