deliverist / builder
Project builder.
Fund package maintenance!
Other
Requires
- php: >=5.6.0
- czproject/path-helper: ^4.0
- czproject/runner: ^1.0
- nette/utils: ^2.4 || ^3.0 || ^4.0
Requires (Dev)
- nette/tester: ^2.0
README
Installation
Download a latest package or use Composer:
composer require deliverist/builder
Deliverist\Builder
requires PHP 5.6.0 or later.
Usage
<?php use Deliverist\Builder\Builder; use Deliverist\Builder\Commands; use Deliverist\Builder\Loggers; $builder = new Builder('/path/to/source/code', [ 'composer-install' => new Commands\ComposerInstall, 'rename' => new Commands\Rename, 'remove' => new Commands\Remove, ], new Loggers\TextLogger); $builder->make('composer-install') ->make('rename', ['from' => 'index.php', 'to' => 'www/index.php']) ->make('remove', ['file' => 'composer.lock']) ->make('composer-install');
Commands
ApacheImports
Expands clause <!--#include file="file.txt" -->
in specified files.
$builder->make('apache-imports', ['file' => 'file-to-expand.txt']); $builder->make('apache-imports', ['files' => [ 'admin.js', 'front.js', ]]);
ComposerInstall
Runs composer install
in composer.json
directory.
$builder->make('composer-install'); $builder->make('composer-install', ['composerFile' => 'path/to/composer.json']);
Copy
Copies specified files.
$builder->make('copy', ['from' => 'old.txt', 'to' => 'new.txt']); $builder->make('copy', ['files' => [ 'old.txt' => 'new.txt', ]]); $builder->make('copy', ['paths' => [ 'old/dir' => 'new/dir', ]]);
CreateDirectory
Creates specified directories.
$builder->make('create-directory', ['directory' => 'new-directory']); $builder->make('create-directory', ['directories' => [ 'new-directory', 'new-directory-2', ]]);
CssExpandImports
Expands clause @import 'file.css'
in specified files.
$builder->make('css-expand-imports', ['file' => 'file-to-expand.txt']); $builder->make('css-expand-imports', ['files' => [ 'admin.css', 'front.css', ]]);
GoogleAnalytics
Replaces placeholder with Google Analytics script in file.
$builder->make('google-analytics', [ 'file' => 'path/to/file.php', 'code' => 'UA-9876-5', 'placeholder' => '%% GA %%', ]); // replaces placeholder '%% GA %%' in file $builder->make('google-analytics', ['file' => 'path/to/file.html', 'code' => 'UA-9876-5']); // uses placeholder '<!-- GA -->' in file $builder->make('google-analytics', ['file' => 'path/to/file.latte', 'code' => 'UA-9876-5']); // uses placeholder {* GA *} in file
GoogleClosureCompiler
Minifies files in online Google Closure Compiler.
$builder->make('google-closure-compiler', ['file' => 'script.js']); $builder->make('google-closure-compiler', ['files' => [ 'script-1.js', 'script-2.js', ]]);
LessCompile
Runs lessc
for compiling of LESS files.
$builder->make('less-compile', ['file' => 'styles.less']); $builder->make('less-compile', ['files' => [ 'style-1.less', 'style-2.less', ]]);
MinifyContent
Removes empty lines & whitespaces on start & end of lines.
$builder->make('minify-content', ['file' => 'file.txt']); $builder->make('minify-content', ['files' => [ 'file-1.txt', 'file-2.txt', ]]);
Example:
Input:
{block content}
<h1>Homepage</h1>
<p>
Lorem ipsum dolor sit amet.
</p>
{/block}
Output:
{block content}
<h1>Homepage</h1>
<p>
Lorem ipsum dolor sit amet.
</p>
{/block}
PingUrl
Opens URL and shows content.
$builder->make('ping-url', ['url' => 'https://example.com/migrations.php']); $builder->make('ping-url', ['url' => 'https://example.com/migrations.php', 'validateSsl' => FALSE]); // disable SSL validation
Remove
Removes file or directory.
$builder->make('remove', ['file' => 'path/to/file.txt']); $builder->make('remove', ['path' => 'path/to/directory']); $builder->make('remove', ['files' => [ 'path/to/file.txt', 'path/to/directory', ]]); $builder->make('remove', ['paths' => [ 'path/to/file.txt', 'path/to/directory', ]]);
Rename
Renames file or directory.
$builder->make('rename', ['from' => 'old.txt', 'to' => 'new.txt']); $builder->make('rename', ['files' => [ 'old.txt' => 'new.txt', ]]);
ReplaceContent
Replaces content in file.
$builder->make('replace-content', [ 'file' => 'file.txt', 'replacements' => [ 'from' => 'to', 'old string' => 'new string', ], ]);
License: New BSD License
Author: Jan Pecha, https://www.janpecha.cz/