/ | -config | | -parameters.ini | -htdocs | | -index.php | -libs | -templates
/|-.structure | | -DEBIAN | | | -conffiles | | | -control | | | -postinst | | | -postrm | | | -preinst | | | -prerm | | | -templates | | -etc | | -var | | | -log | | | -www | -package.xml | -package.properties
/etc/my-app/parameters.ini
Package: my-app
Version: {{{VERSION}}}
Section: user
Priority: optional
Architecture: all
Installed-Size: 0
Maintainer: Mikhail Krestjaninoff <mikhail.krestjaninoff@gmail.com>
Depends: nginx, php5-common (>= 5.2), php5-cli
Description: My application
#!/bin/sh
#!/bin/sh if [ configure = "$1" ]; then # Set permissions chown -R www-data:www-data /etc/my-app/ chmod -R 0664 /etc/my-app/ chown -R www-data:www-data /var/www/my-app/ chmod -R 0664 /var/www/my-app/ chown -R www-data:www-data /var/log/my-app/ chmod -R 0664 /var/log/my-app/ # Set up configuration file . /usr/share/debconf/confmodule db_input critical db/dsn || true db_go db_fset db/dsn seen false || true db_get db/dsn || true DSN=$RET DSN=`echo "$DSN" | sed 's/\//\\\\\//g'`; sed -is/{{DSN}}/$DSN/ /etc/my-app/parameters.ini # Create directories for temporary files CACHE_DIR="/var/www/my-app/templates/cache" COMPILED_DIR="/var/www/my-app/templates/compiled" if [ ! -d $CACHE_DIR ] then mkdir -p $CACHE_DIR chown -R www-data:www-data $CACHE_DIR chmod -R 0664 $CACHE_DIR fi if [ ! -d $COMPILED_DIR ] then mkdir -p $COMPILED_DIR chown -R www-data:www-data $COMPILED_DIR chmod -R 0664 $COMPILED_DIR fi fi
#!/bin/sh if [ remove == "$1" -o purge == "$1" ]; then # Remove directories for temporary files CACHE_DIR="/var/www/my-app/templates/cache" if [ -e $CACHE_DIR ]; then rm -rf $CACHE_DIR fi COMPILED_DIR="/var/www/my-app/templates/compiled" if [ -e $COMPILED_DIR ]; then rm -rf $COMPILED_DIR fi fi
Template: db/dsn Type: string Default: postgres://user@passwd:localhost/my-app Description: Database Source Name. Example: postgres://user@passwd:localhost/my-app
package.name=my-app package.version=1.0.0
<? xml version ="1.0" encoding ="UTF-8" ? >
< project basedir =".." default ="prepare" name ="package-builder" >
< property file ="./.package/package.properties" />
< property name ="location" value ="." />
< property name ="package.structure" value ="${location}/.package/.structure" />
< property name ="package.source" value ="${location}/.package/source" />
< property name ="package.target" value ="${location}/.package/target" />
<!-- Init project -->
< target name ="init" >
< mkdir dir ="${package.source}" />
< mkdir dir ="${package.target}" />
</ target >
<!-- Clean project -->
< target name ="clean" >
< delete dir ="${package.source}" />
< delete dir ="${package.target}" />
</ target >
<!-- Prepare project files for package -->
< target depends ="init" name ="prepare" >
< copy toDir ="${package.source}" >
< fileset dir ="${package.structure}" >
< include name ="**/*" />
< exclude name =".svn" />
</ fileset >
</ copy >
< mkdir dir ="${package.source}/etc/${package.name}" />
< copy toDir ="${package.source}/etc/${package.name}" >
< fileset dir ="config" >
< include name ="**/*" />
< exclude name =".svn" />
</ fileset >
</ copy >
< mkdir dir ="${package.source}/var/www/${package.name}/htdocs" />
< copy toDir ="${package.source}/var/www/${package.name}/htdocs" >
< fileset dir ="htdocs" >
< include name ="**/*" />
< exclude name =".svn" />
</ fileset >
</ copy >
< mkdir dir ="${package.source}/var/www/${package.name}/libs" />
< copy toDir ="${package.source}/var/www/${package.name}/libs" >
< fileset dir ="libs" >
< include name ="**/*" />
< exclude name =".svn" />
</ fileset >
</ copy >
< mkdir dir ="${package.source}/var/www/${package.name}/templates" />
< copy toDir ="${package.source}/var/www/${package.name}/templates" >
< fileset dir ="templates" >
< include name ="**/*" />
< exclude name =".svn" />
< exclude name ="cache" />
< exclude name ="compiled" />
</ fileset >
</ copy >
</ target >
<!-- Build packege -->
< target depends ="prepare" name ="build" >
<!-- Change owner to root -->
< exec executable ="fakeroot" dir ="${package.source}" >
< arg line ="chown -R root:root ." />
</ exec >
<!-- Allow execution for installation scripts -->
< exec executable ="fakeroot" dir ="${package.source}/DEBIAN" >
< arg line ="chmod 0755 preinst postinst prerm postrm" />
</ exec >
<!-- Set package version -->
< exec executable ="sed" >
< arg line ="-is/{{{VERSION}}}/${package.version}/ ${package.source}/DEBIAN/control" />
</ exec >
<!-- Build package -->
< exec executable ="dpkg-deb" >
< arg line ="--build ${package.source} ${package.target}/${package.name}_${package.version}_all.deb" />
</ exec >
</ target >
</ project >
* This source code was highlighted with Source Code Highlighter .
ant -f package.xml build
, which will create a new one for us in the .package / target directory deb package ready to use!Source: https://habr.com/ru/post/76757/
All Articles