tthentic plugins
=item *
YAML format - consumed by both Swat and Outthentic plugins
=item *
JSON format - consumed by Outthentic plugins
=item *
L<Config::Tiny|https://metacpan.org/pod/Config
rrowhub.org/info/logdog> in web server logs, so on.
=head1 Task Boxes
Sparrow tasks boxes are JSON format files to describe sequential tasks to run.
You could think about sparrow boxes as of mul
l recursively go through /path/to/plugins directory and for every directory containing
C<sparrow.json> file runs C<sparrow plg install .> command.
Forcefully reinstall plugin
Use C<force> flag to r
e base 'Exporter';
use Sparrow::Constants;
use Sparrow::Misc;
use Carp;
use File::Basename;
use JSON;
use version;
use Getopt::Long qw(GetOptionsFromArray);
use Archive::Extract;
use File::Path q
t"){
open F, "$plg_src/sparrow.json" or confess "can't open file $plg_src/sparrow.json to read: $!";
my $sp = join "", <F>;
my $spj = decode_json($sp);
close F;
if ( $spj
{
wanted => sub {
my $file = $_;
return unless $file eq 'sparrow.json';
my @args = (".","--local");
push @args, "--force" if $force;
;
use Sparrow::Constants;
use Sparrow::Misc;
use Carp;
use File::Basename;
use File::Path;
use JSON;
use Data::Dumper;
our @EXPORT = qw{
projects_list
project_create
project_show
mmands::Project;
use Sparrow::Commands::Task;
use Carp;
use File::Basename;
use File::Path;
use JSON;
use Data::Dumper;
use File::Copy;
use Term::ANSIColor;
our @EXPORT = qw{
remote_task_uplo
owhub.json
open F, "$ENV{HOME}/sparrowhub.json" or confess "can't open $ENV{HOME}/sparrowhub.json to read: $!";
my $s = join "", <F>;
close F;
$cred = decode_json($s);
owhub.json
open F, "$ENV{HOME}/sparrowhub.json" or confess "can't open $ENV{HOME}/sparrowhub.json to read: $!";
my $s = join "", <F>;
close F;
$cred = decode_json($s);
Sparrow::Misc;
use Sparrow::Commands::Plugin;
use Carp;
use File::Basename;
use File::Path;
use JSON;
use YAML;
use Config::General ;
use Data::Dumper;
use File::Copy;
use Term::ANSIColor;
use Ge
public|private)@//;
}
if (! $ptype and -f sparrow_root."/plugins/public/$pid/sparrow.json" and -d sparrow_root."/plugins/private/$pid" ){
warn "both public and private $pid plugin
ercome this ambiguity";
return;
}elsif( -f sparrow_root."/plugins/public/$pid/sparrow.json" and $ptype ne 'private' ){
my @task_args = ($project,$tid,'plugin',"public\@$pid");
package Sparrow::Commands::TaskBox;
use strict;
use base 'Exporter';
use Carp;
use JSON;
use YAML;
use Sparrow::Commands::Project;
use Sparrow::Commands::Task;
use Sparrow::Commands::Plugin;
use Sp
/\.(yaml|yml)$/){
$tasklist = Load($spec_str);
} elsif ($path=~/\.(json|js)$/) {
$tasklist = decode_json($spec_str);
} else {
die "unsupported task box spec format: $path";
w_root()."/cache/task_$i.json";
open JSON, ">", $path or confess "can't open file $path to read: $!";
print JSON encode_json($task->{data}||{});
close JSON;
(my $safe_task_
between projects \n";
print "\n[task boxes]:\n\n";
print "\tsparrow box run /path/to/box.json # run task box \n";
print "\n[remote tasks]:\n\n";
print "\tsparrow remote task upload