master
 1require 'date'
 2require 'rake/packagetask'
 3
 4task :tarball do
 5  Rake::PackageTask.new("comp-268-2", DateTime.now.strftime("%y%m").to_i) do |package|
 6    package.need_tar_gz = true
 7    package.package_files.add([
 8      '.dockerignore',
 9      '.gitignore',
10      'Dockerfile',
11      'Gemfile*',
12      'README.*',
13      'Rakefile',
14      'doc/*.pdf',
15      'package.json',
16      'pom.xml',
17      'src/**/*.java',
18      'src/**/*.md',
19      'src/**/*.pdf',
20      'yarn.lock',
21    ])
22  end
23  Rake.application['repackage'].invoke
24end
25
26def run_cli(selection = nil)
27  sh "java -cp target/assignment2*.jar ca.mokhan.comp268.App #{selection}"
28end
29
30task(:pdf) do
31  mdpdf = `yarn bin mdpdf`.chomp
32  Dir.chdir(__dir__) do
33    readmes = (Dir["src/**/*.md"] + ['README.md']).sort
34    readmes.each do |file|
35      sh "node #{mdpdf} #{file}"
36    end
37  end
38end
39
40task(:clean) { sh 'rm -fr pkg target src/**/README.pdf' }
41task(:test) { sh 'mvn test' }
42task(doc: [:pdf]) { sh 'mvn javadoc:javadoc' }
43task publish: [:clean, :test, :doc, :tarball]
44task(:build) { sh "mvn package" }
45
46desc "run the CLI"
47task(run: :build) { run_cli }
48
491.upto(10) do |n|
50  desc "run the CLI for program #{n}"
51  task("run#{n}": :build) { run_cli(n) }
52end
53
54task default: [:publish]