diff --git a/lib/linters/default.rb b/lib/linters/default.rb index e69de29b..28a5fa68 100644 --- a/lib/linters/default.rb +++ b/lib/linters/default.rb @@ -0,0 +1,5 @@ +module Linters + module Default + + end +end diff --git a/lib/tasks/fetch/projects.rake b/lib/tasks/fetch/projects.rake index 27d7d9da..c67528f5 100644 --- a/lib/tasks/fetch/projects.rake +++ b/lib/tasks/fetch/projects.rake @@ -23,6 +23,8 @@ namespace :fetch do puts "Parsing projects into #{Vars::Projects.yml_file}" Utils.write_to_file(data.to_yaml, Vars::Projects.yml_file) + Rake::Task["lint:projects"].invoke + sh "bundle exec jekyll pagemaster projects --force" sh "bundle exec jekyll pagemaster project_tags --force" end diff --git a/lib/tasks/lint/all.rake b/lib/tasks/lint/all.rake deleted file mode 100644 index 8ef0b4ce..00000000 --- a/lib/tasks/lint/all.rake +++ /dev/null @@ -1,6 +0,0 @@ -namespace :lint do - desc 'lint all the fetched yaml data' - task :all do - puts 'here' - end -end diff --git a/lib/tasks/lint/courses.rake b/lib/tasks/lint/courses.rake deleted file mode 100644 index e69de29b..00000000 diff --git a/lib/tasks/lint/people.rake b/lib/tasks/lint/people.rake deleted file mode 100644 index e69de29b..00000000 diff --git a/lib/tasks/lint/projects.rake b/lib/tasks/lint/projects.rake index e69de29b..93a753d2 100644 --- a/lib/tasks/lint/projects.rake +++ b/lib/tasks/lint/projects.rake @@ -0,0 +1,20 @@ +require 'rainbow' +require 'linters/default' +require 'linters/projects' +require 'vars' +require 'yaml' + +namespace :lint do + desc 'lint the fetched project yaml data' + task :projects do + categories = %w(DH Seed Grant Recipient Grad Fellowship Project Other) + people = YAML.load_file(Vars::People.yml_file).map { |h| h['pid'] } + projects = YAML.load_file Vars::Projects.yml_file + + projects.each do |project| + project.dig('pis').each do |pi| + puts Rainbow("WARNING: Project '#{project['pid']}' references nonexisting person '#{pi}'.").magenta unless people.include? pi + end + end + end +end diff --git a/lib/utils.rb b/lib/utils.rb index 00875ed1..2393ecbe 100644 --- a/lib/utils.rb +++ b/lib/utils.rb @@ -1,7 +1,5 @@ require 'csv' require 'fileutils' -require 'json' -require 'yaml' module Utils def self.wget_sheet(sheet_key, csv_file) @@ -13,7 +11,6 @@ def self.csv_open(file) CSV.open(file, headers: :first_row).map(&:to_h) end - def self.write_to_file(content, file) FileUtils.mkdir_p File.dirname(file) File.open(file, "w") { |f| f.write content }