/devy

Little overlay/build/packing bash script

Primary LanguageShellOtherNOASSERTION

Devy.sh build script
--------------------

 What this script supposed to do:
   * run drush easily(for drupal based projects)
   * handle overlays (ie. download archive, patch it, copy local
     customizations and package/copy it under /var/www)
   * easily extend it's features. (It's just a bash script)
   * no dependencies. (It's just a bash script :) )

 Devy.sh has two components:
  * devy.sh build script it self
  * devy-meta.sh script that needs to exist under your project root dir. 


Devy-meta.sh file
-----------------

 The purpose of devy-meta.sh is to describe how current project should be build.
 This file is handled by devy.sh script, more or less, in the same manner as:
   * apache ant is handling build.xml
   * apache maven is handling pom.xml
   * gnu make is handling Makefile
   * phing is handling build.xml
   * devy.sh is handling devy-meta.sh 
   * etc.


Requirements
------------

 Most of these components should be already
 present on a regular linux box:
   * bash
   * mktemp
   * which
   * readlink
   * wget
   * curl
   * tar
   * gzip
   * rsync


Install devy.sh
---------------
Copy devy.sh somewhere in your $PATH (ie. /bin/devy.sh)


Using devy.sh
-------------
 Help:
      devy.sh --help

 Building projects based on devy-meta.sh definition, assuming that
 devy-meta.sh exists in your project's root:
       cd /path/to/your/project/
       devy.sh --clean --build

 Packaging:
       cd /path/to/your/project/
       devy.sh --clean --package
 This command will generate:
     - target/devy-component1-{PACKAGE_VERSION}.tgz
     - target/devy-component2-{PACKAGE_VERSION}.tgz
 
 Packaging with custom PACKAGE_VERSION:
     cd /path/to/your/project/
     env PACKAGE_VERSION="1.5.0" ./scripts/devy.sh --clean --package
 
 Development:
  For development, feel free to use --develop flag. It will create symbolic
  links between your dev files and build packages.
       cd /path/to/your/project/
       devy.sh --clean --develop --install-www
       
       or
       devy.sh --install-develop
       
 Building under different target dir:
       export DEVY_BUILD_TARGET='/home/devy/my-devy-build'
       ./scripts/devy.sh --clean --develop --install-www
  Then all your project components will be found under my-devy-build folder,
  and /var/www will contain symliks pointing to that folder.
  ie. /var/www/component1 -> /home/devy/my-devy-build/component1
      /var/www/component2 -> /home/devy/my-devy-build/component2