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]