Sha256: fb9690bdd20a558bfb66f84785244fa8d85d1acea110df6fea9a1eacc377f123

Contents?: true

Size: 1021 Bytes

Versions: 51

Compression:

Stored size: 1021 Bytes

Contents

#!/usr/bin/env perl6
use v6;
use Template::Mustache;
use YAMLish;

my $base-dir = $?FILE.IO.resolve.parent.parent;
my @exercises;

if @*ARGS {
  if @*ARGS[0] eq '--all' {
    push @exercises, $_.basename for $base-dir.child('exercises').dir;
  } else {
    @exercises = @*ARGS;
  }
} else {
  say 'No args given; working in current directory.';
  if 'example.yaml'.IO ~~ :f {
    push @exercises, $*CWD.IO.basename;
  } else {
    say 'example.yaml not found; exiting.';
    exit;
  }
}

for @exercises -> $exercise {
  my $exercise-dir = $base-dir.child("exercises/$exercise");
  next if (my $yaml = $exercise-dir.child('example.yaml')) !~~ :f;
  my $cdata = $base-dir.child("x-common/exercises/$exercise/canonical-data.json");
  my %data = load-yaml $yaml.slurp;
  %data<cdata> = {:json($cdata.slurp)} if $cdata ~~ :f;

  spurt (my $test = $exercise-dir.child("$exercise.t")),
    Template::Mustache.render($base-dir.child('templates/test.mustache').slurp, %data);
  $test.chmod(0o755);
  say "$exercise generated.";
}

Version data entries

51 entries across 51 versions & 1 rubygems

Version Path
trackler-2.1.0.33 tracks/perl6/bin/exercise-gen.pl6
trackler-2.1.0.32 tracks/perl6/bin/exercise-gen.pl6
trackler-2.1.0.31 tracks/perl6/bin/exercise-gen.pl6
trackler-2.1.0.30 tracks/perl6/bin/exercise-gen.pl6
trackler-2.1.0.29 tracks/perl6/bin/exercise-gen.pl6
trackler-2.1.0.28 tracks/perl6/bin/exercise-gen.pl6
trackler-2.1.0.27 tracks/perl6/bin/exercise-gen.pl6
trackler-2.1.0.26 tracks/perl6/bin/exercise-gen.pl6
trackler-2.1.0.25 tracks/perl6/bin/exercise-gen.pl6
trackler-2.1.0.24 tracks/perl6/bin/exercise-gen.pl6
trackler-2.1.0.23 tracks/perl6/bin/exercise-gen.pl6
trackler-2.1.0.22 tracks/perl6/bin/exercise-gen.pl6
trackler-2.1.0.21 tracks/perl6/bin/exercise-gen.pl6
trackler-2.1.0.20 tracks/perl6/bin/exercise-gen.pl6
trackler-2.1.0.19 tracks/perl6/bin/exercise-gen.pl6
trackler-2.1.0.18 tracks/perl6/bin/exercise-gen.pl6
trackler-2.1.0.17 tracks/perl6/bin/exercise-gen.pl6
trackler-2.1.0.16 tracks/perl6/bin/exercise-gen.pl6
trackler-2.1.0.15 tracks/perl6/bin/exercise-gen.pl6
trackler-2.1.0.14 tracks/perl6/bin/exercise-gen.pl6