Metadata-Version: 1.1
Name: zsft.recipe.cmd
Version: 0.4
Summary: Buildout recipe to execute commands via shell or python
Home-page: https://github.com/zartsoft/zsft.recipe.cmd/
Author: Zart Software
Author-email: project-zsft.recipe.cmd@zartsoft.ru
License: MIT
Description: ===============
        zsft.recipe.cmd
        ===============
        
        .. contents::
        
        This recipe allows you to run arbitrary shell and python scripts from buildout.
        It's inspired by similar recipes but has few added features.
        
        Repository: https://github.com/zartsoft/zsft.recipe.cmd
        
        To clone:
        
            `git clone https://github.com/zartsoft/zsft.recipe.cmd`
        
        Issue tracker: https://github.com/zartsoft/zsft.recipe.cmd/issues
        
        Supported Python versions: 2.7, 3.3+
        
        Supported zc.buildout versions: 1.x, 2.x.
        
        
        Usage
        =====
        
        ``install``
            Commands to execute on install phase.
        
        ``update``
            Commands to execute on update phase.
        
        ``shell``
            Shell to run script with. If not set uses default system shell.
            Special value `internal` means executing as python code from buildout.
        
        ``install-shell``
            Can override shell for install phase.
        
        ``update-shell``
            Can override shell for update phase.
        
        ``shell-options``
            Additional switch to shell, like `-File` for PowerShell, `-f` for Awk, etc.
        
        ``install-shell-options``
            Can override shell options for install phase.
        
        ``update-shell-options``
            Can override shell options for update phase.
        
        ``env``
            List of KEY=VALUE pairs to set environment variables.
        
        
        Examples
        ========
        
        .. code:: ini
            
            [cmmi]
            recipe = zsft.recipe.cmd
            install =
                ./configure --prefix=${buildout:parts-directory}/opt
                make
                make install
            env =
                CFLAGS = -g -Wall -O2
                LDFLAGS = -lm
                LD_RUN_PATH = $ORIGIN/../lib
                
            [pythonscript]
            recipe = zsft.recipe.cmd
            shell = internal
            install =
                os.chdir('${buildout:parts-directory}')
                if not os.path.exists('opt'):
                    os.makedirs('opt')
                os.chdir('opt')
                check_call(['./config ; make'], shell=True)
            
            [msbuild:windows]
            recipe = zsft.recipe.cmd
            configuration = Release
            platform = Win32
            install =
                msbuild.exe /t:Build /p:Configuration=${:configuration} /p:Platform=${:platform}
        
            [service-restart:windows]
            recipe = zsft.recipe.cmd
            shell = powershell.exe
            shell-options = -File
            service = foo
            update =
                $service = "${:service}"
                Write-Host -ForegroundColor Yellow "Restarting service '$service'"
                Restart-Service -Verbose $service
        
        
        Difference from other recipes
        =============================
        
        Unlike other similar recipes this one allows you to specify custom shell on
        Windows and environment variables.
        
        ``iw.recipe.cmd``
            Does not allow you to have different scripts for install and update.
            Specifying shell is POSIX only.
        
        ``collective.recipe.cmd``
            Same limitations as in `iw.recipe.cmd`. Has `uninstall_cmds` and python mode.
        
        ``plone.recipe.command``
            Has `stop-on-error` option and allows different scripts for install/update.
            Does not seem to allow multiline commands or custom shells.
        
        
        Change history
        ==============
        
        0.4   (2017-06-21)
        ------------------
        
        - Fix environment parser
        - Fix conditional section syntax in example
        - Cleanup logging
        
        0.3.1 (2017-06-21)
        ------------------
        
        - Fix shell options when no shell is passed.
        
        0.3   (2017-06-21)
        ------------------
        
        - Run shell explicitly. Fixes running on POSIX.
        
        0.2   (2017-06-20)
        ------------------
        
        - Fix for re-running install script.
        
        0.1   (2017-06-20)
        ------------------
        
        - Initial release.
        
Keywords: buildout recipe shell
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Operating System :: OS Independent
Classifier: Framework :: Buildout
Classifier: Framework :: Buildout :: Recipe
