|
|
@@ -0,0 +1,288 @@
|
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
|
+<project xmlns:p5apl="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/apple/p5apl.xsd"
|
|
|
+ basedir="../../."
|
|
|
+ default="test"
|
|
|
+ name="p5apl.terminal-notifier">
|
|
|
+
|
|
|
+
|
|
|
+ <include as="PRODUCT" file="build.p5apl.terminal-notifier.PRODUCT.xml"/>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ <!-- ./terminal-notifier.app/Contents/MacOS/terminal-notifier
|
|
|
+ $ ./terminal-notifier.app/Contents/MacOS/terminal-notifier -[message|group|list] [VALUE|ID|ID] [options]
|
|
|
+
|
|
|
+ ./terminal-notifier.app/Contents/MacOS/terminal-notifier -message test
|
|
|
+
|
|
|
+ ./terminal-notifier.app/Contents/MacOS/terminal-notifier -message test -title testtitle
|
|
|
+
|
|
|
+ ./terminal-notifier.app/Contents/MacOS/terminal-notifier -message test -title testtitle -subtitle subtitle_test
|
|
|
+
|
|
|
+ ./terminal-notifier.app/Contents/MacOS/terminal-notifier -message test -title testtitle -subtitle subtitle_test -group 123
|
|
|
+
|
|
|
+ ./terminal-notifier.app/Contents/MacOS/terminal-notifier -remove 123
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ ./terminal-notifier.app/Contents/MacOS/terminal-notifier -list 123
|
|
|
+ GroupID Title Subtitle Message Delivered At
|
|
|
+ 123 testtitle subtitle_test test 2018-09-24 21:36:28 +0000
|
|
|
+ MACPRO prezes.procesy5.pl:terminal-notifier_1.4.2 a.binder $
|
|
|
+
|
|
|
+ ./terminal-notifier.app/Contents/MacOS/terminal-notifier -message test -title testtitle -subtitle subtitle_test -group 123
|
|
|
+
|
|
|
+
|
|
|
+ -activate ID
|
|
|
+ Specifies which application should be activated when the user clicks the notification.
|
|
|
+ You can find the bundle identifier of an application in its Info.plist file inside the application bundle.
|
|
|
+ Examples are:
|
|
|
+ com.apple.Terminal to activate Terminal.appcom.apple.Safari to activate Safari.app
|
|
|
+
|
|
|
+ -open URL
|
|
|
+ Specifies a resource to be opened when the user clicks the notification. This can be a web or file URL, or any custom URL scheme.
|
|
|
+
|
|
|
+ -execute COMMAND
|
|
|
+ Specifies a shell command to run when the user clicks the notification.
|
|
|
+
|
|
|
+ -appIcon PATH
|
|
|
+Specify an image PATH to display instead of the application icon.
|
|
|
+ -appIcon http://vjeantet.fr/images/logo.png
|
|
|
+
|
|
|
+ -sender ID
|
|
|
+Fakes the sender application of the notification. This uses the specified application’s icon, and will launch it when the notification is clicked.
|
|
|
+Using this option fakes the sender application, so that the notification system will launch that application when the notification is clicked. Because of this it is important to note that you cannot combine this with options like -execute and -activate which depend on the sender of the notification to be ‘terminal-notifier’ to perform its work.
|
|
|
+For information on the ID, see the -activate option.
|
|
|
+
|
|
|
+ -->
|
|
|
+
|
|
|
+
|
|
|
+ <!-- osascript -e 'display notification "Lorem ipsum dolor sit amet" with title "Title"' -->
|
|
|
+
|
|
|
+ <!-- osascript -e 'display notification display notification "message" with title "title" subtitle "subtitle" ' -->
|
|
|
+
|
|
|
+ <!-- osascript -e 'display notification "message" sound name "Sound Name"' -->
|
|
|
+ <!-- ~/Library/Sounds -->
|
|
|
+ <!-- /System/Library/Sounds -->
|
|
|
+ <!-- /System/Library/Sounds/
|
|
|
+Basso.aiff Bottle.aiff Funk.aiff Hero.aiff Ping.aiff Purr.aiff Submarine.aiff
|
|
|
+Blow.aiff Frog.aiff Glass.aiff Morse.aiff Pop.aiff Sosumi.aiff Tink.aiff -->
|
|
|
+
|
|
|
+
|
|
|
+ <!-- Glass -->
|
|
|
+ <!-- Sosumi -->
|
|
|
+ <!-- Tink -->
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ <target name="set.timeout.error" unless="local.p5apl.terminal-notifier__x3A__default_action">
|
|
|
+ <echo>#55 [ S E T T I M E O U T ] - delete controller to set timeout:
|
|
|
+ $p5apl.terminal-notifier.set.timeout.touch = ${p5apl.terminal-notifier.set.timeout.touch}</echo>
|
|
|
+ </target>
|
|
|
+
|
|
|
+ <target name="set.timeout.exec" description="to set timeout how long will persist" if="local.p5apl.terminal-notifier__x3A__allowed_flag" depends="set.timeout.error">
|
|
|
+ <input addproperty="local.p5apl.terminal-notifier.timeout" defaultvalue="60"/>
|
|
|
+ <echo>#76 [ S E T T I M E O U T ] controllers to value ${local.p5apl.terminal-notifier.timeout} [ $local.p5apl.terminal-notifier.timeout ]
|
|
|
+ $p5apl.terminal-notifier.set.timeout.touch.ifexists = ${p5apl.terminal-notifier.set.timeout.touch.ifexists}
|
|
|
+ $p5apl.terminal-notifier.set.timeout.touch = ${p5apl.terminal-notifier.set.timeout.touch}
|
|
|
+ $local.p5apl.terminal-notifier__x3A__allowed_flag = ${local.p5apl.terminal-notifier__x3A__allowed_flag}
|
|
|
+ $local.p5apl.terminal-notifier__x3A__force_action = ${local.p5apl.terminal-notifier__x3A__force_action}
|
|
|
+ </echo>
|
|
|
+ <exec executable="defaults">
|
|
|
+ <arg line="write com.apple.notificationcenterui bannerTime ${local.p5apl.terminal-notifier.timeout}"/>
|
|
|
+ </exec>
|
|
|
+ <touch file="${p5apl.terminal-notifier.set.timeout.touch}" verbose="true" mkdirs="true"/>
|
|
|
+
|
|
|
+ </target>
|
|
|
+
|
|
|
+ <target name="set.timeout.initial_action" unless="p5apl.terminal-notifier.set.timeout.touch.ifexists" >
|
|
|
+ <property name="local.p5apl.terminal-notifier__x3A__allowed_flag" value="allowed to delete by set.timeout.initial_action "/>
|
|
|
+ <property name="local.p5apl.terminal-notifier__x3A__default_action" value=" action is default by set.timeout.initial_action"/>
|
|
|
+ <property name="local.p5apl.terminal-notifier.timeout" value="${p5apl.terminal-notifier.timeout}"/>
|
|
|
+ <property name="local.p5apl.terminal-notifier.message" value="Timeout for displaying notifications was initially changed to ${local.p5apl.terminal-notifier.timeout} ${local.p5apl.terminal-notifier__x3A__default_action}"/>
|
|
|
+ <property name="local.p5apl.terminal-notifier.title" value="set.timeout"/>
|
|
|
+ <property name="local.p5apl.terminal-notifier.subtitle" value="initial_action"/>
|
|
|
+ </target>
|
|
|
+
|
|
|
+ <target name="set.timeout.default_action" unless="p5apl.terminal-notifier.set.timeout.touch.ifexists" if="local.p5apl.terminal-notifier__x3A__default_action">
|
|
|
+ <input addproperty="local.p5apl.terminal-notifier.timeout" message="local.p5apl.terminal-notifier.timeout" defaultvalue="${p5apl.terminal-notifier.timeout}"/>
|
|
|
+ <property name="local.p5apl.terminal-notifier__x3A__allowed_flag" value="allowed to delete by set.timeout.default_action "/>
|
|
|
+ <property name="local.p5apl.terminal-notifier__x3A__default_action" value=" action is default by set.timeout.default_action"/>
|
|
|
+ <property name="local.p5apl.terminal-notifier.message" value="Timeout for displaying notifications was changed to ${local.p5apl.terminal-notifier.timeout} ${local.p5apl.terminal-notifier__x3A__default_action}"/>
|
|
|
+ <property name="local.p5apl.terminal-notifier.title" value="set.timeout"/>
|
|
|
+ <property name="local.p5apl.terminal-notifier.subtitle" value="initial_action"/>
|
|
|
+ </target>
|
|
|
+
|
|
|
+ <target name="set.timeout.force_action" if="local.p5apl.terminal-notifier__x3A__force_action" >
|
|
|
+ <property name="local.p5apl.terminal-notifier__x3A__allowed_flag" value="allowed to force by set.timeout.force_action "/>
|
|
|
+ <property name="local.p5apl.terminal-notifier__x3A__default_action" value=" action is default by set.timeout.force_action"/>
|
|
|
+ </target>
|
|
|
+
|
|
|
+ <extension-point name="set.timeout" depends="set.timeout.force_action, set.timeout.default_action, set.timeout.initial_action, set.timeout.exec , set.timeout.error , notify__x3A__action "/>
|
|
|
+
|
|
|
+ <target name="set.timeout.force.input">
|
|
|
+ <input addproperty="local.p5apl.terminal-notifier.timeout" message="local.p5apl.terminal-notifier.timeout" defaultvalue="${p5apl.terminal-notifier.timeout}"/>
|
|
|
+ <property name="local.p5apl.terminal-notifier__x3A__force_action" value="forced by set.timeout.force "/>
|
|
|
+ <echo>#55 [ S E T T I M E O U T ] [ F O R C E ] - force action controller to set timeout:
|
|
|
+ set $local.p5apl.terminal-notifier__x3A__force_action = ${local.p5apl.terminal-notifier__x3A__force_action}
|
|
|
+ </echo>
|
|
|
+ <property name="local.p5apl.terminal-notifier.group" value=""/>
|
|
|
+ <property name="local.p5apl.terminal-notifier.message" value="Timeout for displaying notifications was changed to ${local.p5apl.terminal-notifier.timeout} ${local.p5apl.terminal-notifier__x3A__force_action}"/>
|
|
|
+ <property name="local.p5apl.terminal-notifier.title" value="set.timeout"/>
|
|
|
+ <property name="local.p5apl.terminal-notifier.subtitle" value="force_action"/>
|
|
|
+ </target>
|
|
|
+
|
|
|
+ <extension-point name="set.timeout.force" depends=" set.timeout.force.input , set.timeout" description="to force set timeout when exists $p5apl.terminal-notifier.set.timeout.touch ${p5apl.terminal-notifier.set.timeout.touch} " />
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ <target name="test.input" >
|
|
|
+ <property name="local.p5apl.terminal-notifier__x3A__default_action" value=" default action executed $local.p5apl.terminal-notifier__x3A__default_action"/>
|
|
|
+ <property name="local.p5apl.terminal-notifier.message" value="test message"/>
|
|
|
+ <property name="local.p5apl.terminal-notifier.title" value="test title"/>
|
|
|
+ <property name="local.p5apl.terminal-notifier.subtitle" value="test subtitle"/>
|
|
|
+ <property name="local.p5apl.terminal-notifier.group" value="123"/>
|
|
|
+ <property name="local.p5apl.terminal-notifier.sound" value="default"/>
|
|
|
+ <property name="local.p5apl.terminal-notifier.open" value="/opt/local/pl.procesy5/p5build_SE/temp/WPS_Functions/default_db/CRM_PROCES_tree/relations-113_000001/p5xslSCDGA/files/local.p5xslSCDGA.files.read.xml"/> <!-- /Users/a.binder/procesy5-dita-templates-druki/xmlschema_procesy5/src-xmlschema/public_html/WPS_Functions/apple/install/terminal-notifier-2/terminal-notifier.app/Contents/MacOS/terminal-notifier to open /opt/local/pl.procesy5/p5build_SE/temp/WPS_Functions/default_db/CRM_PROCES_tree/relations-113_000001/p5xslSCDGA/files/local.p5xslSCDGA.files.read.xml -->
|
|
|
+ <property name="local.p5apl.terminal-notifier.url" value="http://www.wp.pl"/>
|
|
|
+ <property name="local.p5apl.terminal-notifier.execute" value="echo dupa"/>
|
|
|
+ <property name="local.p5apl.terminal-notifier.timeout" value="70"/>
|
|
|
+ </target>
|
|
|
+
|
|
|
+ <target name="test" depends="test.input, set.timeout.force"><!-- notify, open, -->
|
|
|
+ <!-- <echo>#104 current.timestamp = ${current.timestamp} </echo>
|
|
|
+ <fileset dir="${p5apl.basedir}" id="p5apl.test_bsdr" includes="*" >
|
|
|
+ <date datetime="${current.timestamp__x3A__offset__.past.10.sec}" when="after"/>
|
|
|
+ </fileset>
|
|
|
+ <property name="p5apl.test_bsdr" refid="p5apl.test_bsdr"/>
|
|
|
+ <echo>#109 p5apl.test_bsdr = ${p5apl.test_bsdr}</echo>
|
|
|
+ -->
|
|
|
+ </target>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ <target name="notify.input" if="p5apl.osascript">
|
|
|
+ <input addproperty="local.p5apl.terminal-notifier.message" message="local.p5apl.terminal-notifier.message" defaultvalue="test message"/>
|
|
|
+ <input addproperty="local.p5apl.terminal-notifier.title" message="local.p5apl.terminal-notifier.title" defaultvalue="test title"/>
|
|
|
+ <input addproperty="local.p5apl.terminal-notifier.subtitle" message="local.p5apl.terminal-notifier.subtitle" defaultvalue="test subtitle"/>
|
|
|
+ <!--<input addproperty="local.p5apl.terminal-notifier.group" message="local.p5apl.terminal-notifier.group" defaultvalue="123"/>-->
|
|
|
+ <property name="local.p5apl.terminal-notifier.sound" value="default"/>
|
|
|
+ <property name="local.p5apl.terminal-notifier.subtitle" value=""/>
|
|
|
+ <echo>#93 [ N O T I F Y ]
|
|
|
+ options:
|
|
|
+ [ Glass | Sosumi | Tink ] + set default $local.p5apl.terminal-notifier.sound = ${local.p5apl.terminal-notifier.sound}
|
|
|
+ [ int ] + set default $local.p5apl.terminal-notifier.group = ${local.p5apl.terminal-notifier.group}
|
|
|
+ [ string ] + set default $local.p5apl.terminal-notifier.subtitle = ${local.p5apl.terminal-notifier.subtitle}
|
|
|
+ </echo>
|
|
|
+ </target>
|
|
|
+
|
|
|
+ <extension-point name="notify" depends="notify.input , set.timeout, notify__x3A__action" if="p5apl.osascript" description="to notify about sth in system "/>
|
|
|
+
|
|
|
+ <target name="notify__x3A__action" if="p5apl.osascript">
|
|
|
+ <touch file="${p5apl.terminal-notifier.groups.dir}/${local.p5apl.terminal-notifier.group}" verbose="true" mkdirs="true"/>
|
|
|
+ <exec executable="${p5apl.terminal-notifier.binary}">
|
|
|
+ <arg line="-message '${local.p5apl.terminal-notifier.message}'"/>
|
|
|
+ <arg line="-title '${local.p5apl.terminal-notifier.title}'"/>
|
|
|
+ <arg line="-subtitle '${local.p5apl.terminal-notifier.subtitle}'"/>
|
|
|
+ <arg line="-group ${local.p5apl.terminal-notifier.group}"/>
|
|
|
+ <arg line="-sound ${local.p5apl.terminal-notifier.sound}"/>
|
|
|
+ <!--<arg line="-sound Sosumi"/>-->
|
|
|
+ <arg line="-appIcon ${p5build_SE.PRODUCT.logo__x3A__notify.png}"/>
|
|
|
+ </exec>
|
|
|
+ </target>
|
|
|
+
|
|
|
+
|
|
|
+ <target name="open.input" depends="notify.input" if="p5apl.osascript">
|
|
|
+
|
|
|
+ <input addproperty="local.p5apl.terminal-notifier.open" message="local.p5apl.terminal-notifier.open" />
|
|
|
+ <!--<input addproperty="local.p5apl.terminal-notifier.group" message="local.p5apl.terminal-notifier.group" defaultvalue="123"/>-->
|
|
|
+ <echo>#93 [ N O T I F Y U R L ] + $local.p5apl.terminal-notifier.open = ${local.p5apl.terminal-notifier.open} </echo>
|
|
|
+ </target>
|
|
|
+
|
|
|
+ <extension-point name="open" depends="open.exec" extensionOf="p5ant.safety.open_file__x3A__p5apl.terminal-notifier" onMissingExtensionPoint="warn"/>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ <target name="open.exec" depends="open.input" description="to notify about sth in system and file open " if="p5apl.osascript">
|
|
|
+ <echo> will command ${p5apl.terminal-notifier.binary} -message "${local.p5apl.terminal-notifier.message}" -execute "${p5apl.open} ${local.p5apl.terminal-notifier.open}" </echo>
|
|
|
+ <touch file="${p5apl.terminal-notifier.groups.dir}/${local.p5apl.terminal-notifier.group}" verbose="true" mkdirs="true"/>
|
|
|
+ <exec executable="${p5apl.terminal-notifier.binary}" outputproperty="p5apl.terminal-notifier.binary.activate.output" errorproperty="p5apl.terminal-notifier.binary.activate.error" failifexecutionfails="true">
|
|
|
+ <arg line="-activate com.apple.Terminal"/>
|
|
|
+ <arg line="-message ${local.p5apl.terminal-notifier.message}"/>
|
|
|
+ <!--<arg line="-execute ${p5apl.open} ${local.p5apl.terminal-notifier.open}"/>-->
|
|
|
+ </exec>
|
|
|
+
|
|
|
+ <echo>#163
|
|
|
+ $p5apl.terminal-notifier.binary.activate.output:
|
|
|
+ ${p5apl.terminal-notifier.binary.activate.output}
|
|
|
+ p5apl.terminal-notifier.binary.activate.error:
|
|
|
+ ${p5apl.terminal-notifier.binary.activate.error}
|
|
|
+ </echo>
|
|
|
+
|
|
|
+
|
|
|
+ <exec executable="${p5apl.terminal-notifier.binary}" outputproperty="p5apl.terminal-notifier.binary.open.output" errorproperty="p5apl.terminal-notifier.binary.open.error" failifexecutionfails="true" >
|
|
|
+
|
|
|
+ <arg line="-title '${local.p5apl.terminal-notifier.title}'"/>
|
|
|
+ <arg line="-subtitle '${local.p5apl.terminal-notifier.subtitle}'"/>
|
|
|
+ <!--<arg line="-group ${local.p5apl.terminal-notifier.group}"/>-->
|
|
|
+ <arg line="-sound ${local.p5apl.terminal-notifier.sound}"/>
|
|
|
+ <!--<arg line="-execute "${p5apl.open} ${local.p5apl.terminal-notifier.open}""/>-->
|
|
|
+ <arg line="-execute "${p5apl.open} ${local.p5apl.terminal-notifier.open}" -message '${local.p5apl.terminal-notifier.message}'"/> <!-- ${p5apl.open} ${local.p5apl.terminal-notifier.open}; -->
|
|
|
+ <!--<arg line="-group com.apple.Terminal "/>-->
|
|
|
+ <!--<arg line="-sender com.apple.Terminal"/>-->
|
|
|
+ <!--<arg line="-sound Sosumi"/>-->
|
|
|
+ <arg line="-appIcon ${p5build_SE.PRODUCT.logo__x3A__notify.png}"/>
|
|
|
+ </exec>
|
|
|
+ <echo>#182
|
|
|
+ $p5apl.terminal-notifier.binary.open.output:
|
|
|
+ ${p5apl.terminal-notifier.binary.open.output}
|
|
|
+ $p5apl.terminal-notifier.binary.open.error:
|
|
|
+ ${p5apl.terminal-notifier.binary.open.error}
|
|
|
+ </echo>
|
|
|
+ <local name="p5apl.terminal-notifier.REMIND.timestamp__x3A__fresh"/>
|
|
|
+ <local name="p5apl.last.10.secs"/>
|
|
|
+ <tstamp>
|
|
|
+ <format property="p5apl.last.10.secs" pattern="MM/dd/yyyy hh:mm a" offset="-10" unit="second" locale="pl"/>
|
|
|
+ </tstamp>
|
|
|
+ <fileset id="p5apl.terminal-notifier.REMIND.timestamp__x3A__fresh" dir="${p5apl.repository}" includes="p5apl.terminal-notifier.REMIND.timestamp">
|
|
|
+ <date when="before" datetime="${p5apl.last.10.secs}"/>
|
|
|
+ </fileset>
|
|
|
+ <property name="p5apl.terminal-notifier.REMIND.timestamp__x3A__fresh2" refid="p5apl.terminal-notifier.REMIND.timestamp__x3A__fresh"/>
|
|
|
+
|
|
|
+ <echo file="${p5apl.terminal-notifier.REMIND.timestamp}.echo"># $p5apl.terminal-notifier.REMIND.timestamp__x3A__fresh2 = ${p5apl.terminal-notifier.REMIND.timestamp__x3A__fresh2} = ${p5apl.last.10.secs}</echo>
|
|
|
+
|
|
|
+ <touch file="${p5apl.terminal-notifier.REMIND.timestamp}" mkdirs="true"/>
|
|
|
+ <property name="open_file__x3A__opened" value=" file was sent to GUI for user action by p5apl.terminal-notifier app ${p5apl.terminal-notifier.binary} to open ${local.p5apl.terminal-notifier.open}"/>
|
|
|
+ <echo>#241 [ F O R K R E M I N D +30 SECONDS ] </echo>
|
|
|
+ <exec spawn="true" executable="bash" > <!-- /bin/sleep --> <!-- && ${p5apl.terminal-notifier.binary} -->
|
|
|
+ <arg value="-c"/>
|
|
|
+ <arg value="/bin/sleep 30 ; ${p5apl.terminal-notifier.binary} -title 'REMIND ${local.p5apl.terminal-notifier.title}' -subtitle '${local.p5apl.terminal-notifier.subtitle}' -sound ${local.p5apl.terminal-notifier.sound} -execute "${p5apl.open} ${local.p5apl.terminal-notifier.open}" -message '${local.p5apl.terminal-notifier.message}' -appIcon ${p5build_SE.PRODUCT.logo__x3A__notify.png}"/>
|
|
|
+
|
|
|
+ </exec>
|
|
|
+
|
|
|
+ </target>
|
|
|
+
|
|
|
+ <target name="execute.input" depends="notify.input" if="p5apl.osascript">
|
|
|
+
|
|
|
+ <input addproperty="local.p5apl.terminal-notifier.execute" message="local.p5apl.terminal-notifier.execute" />
|
|
|
+ <echo>#146 [ N O T I F Y E X E C U T E ] + $local.p5apl.terminal-notifier.execute = ${local.p5apl.terminal-notifier.execute} </echo>
|
|
|
+ </target>
|
|
|
+
|
|
|
+
|
|
|
+ <target name="execute" depends="execute.input" description="to notify about sth in system and execute sth " if="p5apl.osascript">
|
|
|
+ <touch file="${p5apl.terminal-notifier.groups.dir}/${local.p5apl.terminal-notifier.group}" verbose="true" mkdirs="true"/>
|
|
|
+ <exec executable="${p5apl.terminal-notifier.binary}">
|
|
|
+ <arg line="-message '${local.p5apl.terminal-notifier.message}'"/>
|
|
|
+ <arg line="-title '${local.p5apl.terminal-notifier.title}'"/>
|
|
|
+ <arg line="-subtitle '${local.p5apl.terminal-notifier.subtitle}'"/>
|
|
|
+ <arg line="-group ${local.p5apl.terminal-notifier.group}"/>
|
|
|
+ <arg line="-sound ${local.p5apl.terminal-notifier.sound}"/>
|
|
|
+ <!--<arg line="-sound default"/>-->
|
|
|
+ <arg line="-execute ${local.p5apl.terminal-notifier.execute}"/>
|
|
|
+
|
|
|
+ <!--<arg line="-sound Sosumi"/>-->
|
|
|
+ <arg line="-appIcon ${p5build_SE.PRODUCT.logo__x3A__notify.png}"/>
|
|
|
+ </exec>
|
|
|
+ </target>
|
|
|
+
|
|
|
+</project>
|