Polish the obsolete_URI script, so it can be used to scan an active workspace, not just a released directory.
This commit is contained in:
parent
354fe56def
commit
a7e53d9ac0
6 changed files with 96 additions and 18 deletions
7
utilities/ISF-transition/obsoleteUris/doit2
Executable file
7
utilities/ISF-transition/obsoleteUris/doit2
Executable file
|
@ -0,0 +1,7 @@
|
|||
ruby obsoleteUriChecker.rb /Users/jeb228/git/VIVO \
|
||||
../../../productMods/WEB-INF/ontologies/update/diff.tab.txt \
|
||||
vivo_known_exceptions_2.txt complete > scan_VIVO_maint_branch
|
||||
ruby obsoleteUriChecker.rb /Users/jeb228/git/Vitro \
|
||||
../../../productMods/WEB-INF/ontologies/update/diff.tab.txt \
|
||||
vivo_known_exceptions_2.txt complete > scan_Vitro_maint_branch
|
||||
|
|
@ -5,9 +5,15 @@ class Event
|
|||
attr_reader :string
|
||||
attr_reader :is_localname
|
||||
|
||||
require 'pathname'
|
||||
|
||||
# ------------------------------------------------------------------------------------
|
||||
private
|
||||
# ------------------------------------------------------------------------------------
|
||||
|
||||
def relativize(root, path)
|
||||
Pathname.new(path).relative_path_from(Pathname.new(root)).to_s
|
||||
end
|
||||
|
||||
# ------------------------------------------------------------------------------------
|
||||
public
|
||||
|
@ -21,7 +27,11 @@ class Event
|
|||
@is_localname = string[0] == ?:
|
||||
end
|
||||
|
||||
def to_s()
|
||||
"#{@path} \n #{@line_number} #{@line} \n #{@string} #{@is_localname ? "Localname" : "URI"}"
|
||||
def to_s(directory_root = nil)
|
||||
if directory_root
|
||||
"#{relativize(directory_root, @path)} \n #{@line_number} #{@line} \n #{@string} #{@is_localname ? "Localname" : "URI"}"
|
||||
else
|
||||
"#{@path} \n #{@line_number} #{@line} \n #{@string} #{@is_localname ? "Localname" : "URI"}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,5 +1,22 @@
|
|||
require 'pathname'
|
||||
|
||||
class KnownExceptionsError < StandardError; end
|
||||
|
||||
class GlobSkipper
|
||||
def initialize(root_path, glob)
|
||||
@root_path = root_path
|
||||
@glob = glob
|
||||
end
|
||||
|
||||
def relativize(path)
|
||||
Pathname.new(path).relative_path_from(Pathname.new(@root_path)).to_s
|
||||
end
|
||||
|
||||
def skip?(path, line, uri)
|
||||
return File.fnmatch(@glob, relativize(path))
|
||||
end
|
||||
end
|
||||
|
||||
class ExtensionSkipper
|
||||
def initialize(extension)
|
||||
@extension = extension
|
||||
|
@ -44,10 +61,11 @@ class KnownExceptions
|
|||
line.strip!
|
||||
next if line.length == 0 || line[0..0] == '#' || line[0] == ?!
|
||||
|
||||
if line =~ /^\.[^\/]*$/
|
||||
skippers << ExtensionSkipper.new(line)
|
||||
elsif line =~ /^(\S+)\s*$/
|
||||
skippers << PathSkipper.new(@root_path, $1)
|
||||
# if line =~ /^\.[^\/]*$/
|
||||
# skippers << ExtensionSkipper.new(line)
|
||||
if line =~ /^(\S+)\s*$/
|
||||
# skippers << PathSkipper.new(@root_path, $1)
|
||||
skippers << GlobSkipper.new(@root_path, $1)
|
||||
elsif line =~ /^(\S+)\s*(\d+)\s*$/
|
||||
skippers << LineSkipper.new(@root_path, $1, $2.to_i)
|
||||
else
|
||||
|
@ -71,7 +89,7 @@ class KnownExceptions
|
|||
if line_number == -1
|
||||
next if skipper.is_a?(LineSkipper)
|
||||
else
|
||||
next if skipper.is_a?(ExtensionSkipper) || skipper.is_a?(PathSkipper)
|
||||
next if skipper.is_a?(ExtensionSkipper) || skipper.is_a?(PathSkipper) || skipper.is_a?(GlobSkipper)
|
||||
end
|
||||
|
||||
if skipper.skip?(file, line_number, string)
|
||||
|
|
|
@ -80,8 +80,8 @@ class ObsoleteUriChecker
|
|||
# ------------------------------------------------------------------------------------
|
||||
|
||||
def initialize(args)
|
||||
@report = Report.new(args)
|
||||
@directory_root, @obsolete_uris, @known_exceptions, @complete = parse_arguments(args)
|
||||
@report = Report.new(args, @directory_root)
|
||||
rescue UsageError => e
|
||||
puts "\n----------------\nUsage error\n----------------\n\n#{e}\n\n----------------\n\n"
|
||||
exit
|
||||
|
|
|
@ -3,6 +3,10 @@ class Report
|
|||
private
|
||||
# ------------------------------------------------------------------------------------
|
||||
|
||||
def relativize(path)
|
||||
Pathname.new(path).relative_path_from(Pathname.new(@directory_root)).to_s
|
||||
end
|
||||
|
||||
def state_arguments()
|
||||
puts
|
||||
puts "-----------------------------------------------------------------"
|
||||
|
@ -29,9 +33,8 @@ class Report
|
|||
hash[event.path] = hash[event.path] << event
|
||||
end
|
||||
|
||||
# puts "FLAT: #{hash.to_a.flatten}"
|
||||
hash.sort.each do |path, events|
|
||||
puts "#{path}"
|
||||
puts "#{relativize(path)}"
|
||||
events.sort{|a, b| a.line_number <=> b.line_number }.each do |e|
|
||||
trimmed =
|
||||
if e.line.size <= 100
|
||||
|
@ -46,18 +49,13 @@ class Report
|
|||
end
|
||||
end
|
||||
|
||||
def list_events()
|
||||
@events.each do |event|
|
||||
puts "Event: #{event}"
|
||||
end
|
||||
end
|
||||
|
||||
# ------------------------------------------------------------------------------------
|
||||
public
|
||||
# ------------------------------------------------------------------------------------
|
||||
|
||||
def initialize(args)
|
||||
def initialize(args, directory_root)
|
||||
@args = args;
|
||||
@directory_root = directory_root
|
||||
@file_count = 0
|
||||
@extensions_count = Hash.new(0)
|
||||
@events = []
|
||||
|
@ -75,7 +73,6 @@ class Report
|
|||
def report()
|
||||
state_arguments()
|
||||
file_summary()
|
||||
# list_events()
|
||||
collate_and_list_events()
|
||||
end
|
||||
end
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
.*
|
||||
bin
|
||||
|
||||
*.GIF
|
||||
*.as
|
||||
*.class
|
||||
*.fla
|
||||
*.gif
|
||||
*.gz
|
||||
*.ico
|
||||
*.jar
|
||||
*.jpg
|
||||
*.psd
|
||||
*.png
|
||||
*.swf
|
||||
*.war
|
||||
*.zip
|
||||
|
||||
**/.*
|
||||
|
||||
#
|
||||
# first_pass: no excluded files. everything was duplicated in the .bin directory, and
|
||||
# probably in the .build directory also. Ran against the repository, so VIVO
|
||||
# only.
|
||||
#
|
||||
# 7498 89730 2277668 first_pass.output
|
||||
#
|
||||
|
||||
test/edu/cornell/mannlib/vitro/webapp/search/solr/NIHVIVO3853_DataSet1.rdf
|
||||
productMods/WEB-INF/ontologies/update/oldVersion/vivo-event-1.5.owl
|
||||
productMods/WEB-INF/ontologies/update/oldAnnotations/vivo-core-1.5-annotations.rdf
|
||||
productMods/WEB-INF/ontologies/update/diff.tab.txt
|
||||
|
||||
#
|
||||
# second_pass: excluded these nasty files. Ran against a clean distro, with VIVO and
|
||||
# Vitro, but no .bin or .build
|
||||
#
|
||||
# 1798 5159 170092 second_pass.output
|
||||
#
|
||||
|
||||
productMods/WEB-INF/ontologies/update/oldVersion/vivo-foaf-1.5.owl
|
||||
productMods/WEB-INF/ontologies/update/oldVersion/vivo-core-1.5.owl
|
||||
productMods/WEB-INF/ontologies/update/oldVersion/vivo-bibo-1.5.owl
|
||||
productMods/WEB-INF/ontologies/update/oldVersion/scires-1.5.owl
|
||||
productMods/WEB-INF/ontologies/update/oldVersion/vivo-dcterms-1.5.owl
|
||||
productMods/WEB-INF/ontologies/update/oldVersion/vivo-dcelements-1.5.owl
|
Loading…
Add table
Add a link
Reference in a new issue