Skip to content

daiba/Pawn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 

Repository files navigation

   Pawn : Yet Another Deploy Tool

I want to use a simple deploy tool, which consist of
a file and depends on core modules. This is my solution.
Pawn.pl reads a configuration file, recognize which
servers to process and what commands to execute.

sample configurations:
-- ex1 --
hosts 'host1 host2'
commands sub {
    (
        [ 'hostname' => sub { print shift } ],
        [ 'date'     => sub { print shift } ]
    );
};
-- ex2 --
include  'hosts';
commands sub {
    (
        [ 'hostname' => sub { print shift } ],
        [ 'date'     => sub { print shift } ]
    );
};
-- hosts --
hosts 'host1 host2';
-- ex3 --
include  'hosts';
commands sub {
    (
        [ 'hostname' => sub { print shift } ],
        [  sub { 'scp' => '/etc/motd HOST:/home/daiba'} => sub { print $_=(shift==0)? 'OK' : 'NG',"\n" } ],
        [ 'date'     => sub { print shift } ]
    );
};
-- ex4 --
include  'hosts';
commands sub {
    (
        [ 'hostname' => sub { print shift } ],
        [  sub { 'scp' => 'HOST:/etc/redhat-release /Users/daiba/HOST_release'},
           => sub { print $_=(shift==0)? 'OK' : 'NG',"\n" } ],
        [ 'date'     => sub { print shift } ]
    );
};
-- ex5 --
include  'hosts';
commands sub {
    (
        [ 'hostname' => sub { print shift } ],
        [  sub { 'local' => 'hostname'} => sub { print shift } ],
        [ 'date'     => sub { print shift } ]
    );
};
-- ex6 --
include  'hosts';
commands sub {
    (
        [ 'hostname' => sub { print shift } ],
        [ 'ls AST'     => sub { print shift } ]
    );
};
-- ex7 --
include  'hosts';
commands sub {
    (
        [ 'hostname' => sub { print shift } ],
        [  sub { 'local' => 'ls AST'} => sub { print shift } ],
    );
};

how to run:
$ pawn.pl ex1              # ex1 as a configuration file above
$ pawn.pl -s commands_file # shell mode
$ pawn.pl -h               # help

About

Yet another deploy tool

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages