lalbert/bash-writer

Write quickly and easily bash scripts with PHP

dev-develop 2016-09-30 12:50 UTC

This package is auto-updated.

Last update: 2024-04-24 19:55:58 UTC


README

Write quickly and easily bash scripts with PHP.

PHP Bash Writer is not designed to run bash script but only to facilitate writing scripts by adding styles (color, bold, ...) on the output.

Internally it uses symfony/console to manage the color and styles (see OutputFormatter).

Installation

The best way to install PHP Bash Writer it use composer

composer require lalbert/bash-writer

Usage

$sh = new BashWriter();

$sh->addCommand('#!/bin/bash', ['print' => false]);

$sh->newLine(); // Add new blank line only in file, not on output
$sh->newLine(true); // Add new line on output (write "echo")

$sh->addCommand('cd $HOME'); // print 'cd /home/user' and run command
$sh->addCommand('ls -la', ['print' => 'List files in <comment>`(pwd)`</comment> folder']); // print 'List files in `(pwd)` folder' whith result of pwd in yellow, and run command

$sh->addCommand('touch <bg=yellow;options=bold>file.txt</>'); // print 'touch file.txt' with 'file.txt' in yellow and bold, and run 'touch file.txt'
$sh->addCommand('echo "content file" > file.txt', ['print' => false]); // add content in file.txt, shows nothing

$sh->newLine(true);
$sh->output('<info>Done</info>'); // print "Done" in green text

// save script in script.sh file
file_put_contents('script.sh', $sh);

Now, the file script.sh contains the following script:

#!/bin/bash

echo
echo -e "cd $HOME"
cd $HOME
echo -e "List files in ^[[33m`(pwd)`^[[39m folder"
ls -la
echo -e "touch ^[[43;1mfile.txt^[[49;22m"
touch file.txt
echo "content file" > file.txt
echo
echo -e "^[[32mDone^[[39m"