miga-base 0.2.0.9 → 0.2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Rakefile +3 -0
- data/actions/add_result.rb +37 -0
- data/actions/add_taxonomy.rb +63 -0
- data/actions/create_dataset.rb +49 -0
- data/actions/create_project.rb +46 -0
- data/actions/daemon.rb +50 -0
- data/actions/date.rb +14 -0
- data/actions/{download_dataset → download_dataset.rb} +5 -28
- data/actions/find_datasets.rb +41 -0
- data/actions/import_datasets.rb +47 -0
- data/actions/index_taxonomy.rb +46 -0
- data/actions/list_datasets.rb +50 -0
- data/actions/list_files.rb +43 -0
- data/actions/project_info.rb +40 -0
- data/actions/unlink_dataset.rb +28 -0
- data/bin/miga +129 -33
- data/lib/miga/daemon.rb +48 -34
- data/lib/miga/dataset.rb +7 -123
- data/lib/miga/dataset_result.rb +177 -0
- data/lib/miga/project.rb +32 -12
- data/lib/miga/version.rb +2 -2
- data/scripts/_distances_functions.bash +82 -0
- data/scripts/_distances_noref_nomulti.bash +96 -67
- data/scripts/_distances_ref_nomulti.bash +54 -85
- data/scripts/assembly.bash +16 -3
- data/scripts/clade_finding.bash +20 -18
- data/scripts/distances.bash +2 -1
- data/scripts/init.bash +2 -6
- data/scripts/subclades.bash +4 -5
- data/test/common_test.rb +2 -2
- data/test/daemon_test.rb +73 -1
- data/test/project_test.rb +26 -2
- data/test/taxonomy_test.rb +10 -0
- data/test/test_helper.rb +1 -1
- data/utils/subclades-compile.rb +4 -2
- data/utils/subclades.R +140 -158
- metadata +48 -44
- data/actions/add_result +0 -58
- data/actions/add_taxonomy +0 -83
- data/actions/create_dataset +0 -61
- data/actions/create_project +0 -67
- data/actions/daemon +0 -66
- data/actions/find_datasets +0 -61
- data/actions/import_datasets +0 -83
- data/actions/index_taxonomy +0 -68
- data/actions/list_datasets +0 -81
- data/actions/list_files +0 -63
- data/actions/unlink_dataset +0 -49
data/actions/daemon
DELETED
@@ -1,66 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
# @package MiGA
|
4
|
-
# @license Artistic-2.0
|
5
|
-
|
6
|
-
require "miga/daemon"
|
7
|
-
|
8
|
-
task = ARGV.shift unless ["-h","--help"].include? ARGV.first
|
9
|
-
ARGV << "-h" if ARGV.empty?
|
10
|
-
o = {q:true, update:false, daemon_opts:[]}
|
11
|
-
OptionParser.new do |opt|
|
12
|
-
opt.banner = <<BAN
|
13
|
-
Controls the daemon of a MiGA project.
|
14
|
-
|
15
|
-
Usage: #{$0} #{File.basename(__FILE__)} {task} [options]
|
16
|
-
BAN
|
17
|
-
opt.separator "task:"
|
18
|
-
{ start: "Start an instance of the application.",
|
19
|
-
stop: "Start an instance of the application.",
|
20
|
-
restart: "Stop all instances and restart them afterwards.",
|
21
|
-
reload: "Send a SIGHUP to all instances of the application.",
|
22
|
-
run: "Start the application and stay on top.",
|
23
|
-
zap: "Set the application to a stopped state.",
|
24
|
-
status: "Show status (PID) of application instances."
|
25
|
-
}.each{ |k,v| opt.separator sprintf " %*s%s", -33, k, v }
|
26
|
-
opt.separator ""
|
27
|
-
opt.separator "MiGA options:"
|
28
|
-
opt.on("-P", "--project PATH",
|
29
|
-
"(Mandatory) Path to the project to use."){ |v| o[:project]=v }
|
30
|
-
opt.on("--latency INT",
|
31
|
-
"Number of seconds the daemon will be sleeping."
|
32
|
-
){ |v| o[:latency]=v.to_i }
|
33
|
-
opt.on("--max-jobs INT",
|
34
|
-
"Maximum number of jobs to use simultaneously."){ |v| o[:maxjobs]=v.to_i }
|
35
|
-
opt.on("--ppn INT",
|
36
|
-
"Maximum number of cores to use in a single job."){ |v| o[:ppn]=v.to_i }
|
37
|
-
opt.on("-v", "--verbose",
|
38
|
-
"Print additional information to STDERR."){ o[:q]=false }
|
39
|
-
opt.on("-d", "--debug INT", "Print debugging information to STDERR.") do |v|
|
40
|
-
v.to_i>1 ? MiGA::MiGA.DEBUG_TRACE_ON : MiGA::MiGA.DEBUG_ON
|
41
|
-
end
|
42
|
-
opt.on("-h", "--help", "Display this screen.") do
|
43
|
-
puts opt
|
44
|
-
exit
|
45
|
-
end
|
46
|
-
opt.separator ""
|
47
|
-
opt.separator "Daemon options:"
|
48
|
-
opt.on("-t", "--ontop",
|
49
|
-
"Stay on top (does not daemonize)"){ o[:daemon_opts] << '-t' }
|
50
|
-
opt.on("-f", "--force", "Force operation"){ o[:daemon_opts] << '-f' }
|
51
|
-
opt.on("-n", "--no_wait",
|
52
|
-
"Do not wait for processes to stop"){ o[:daemon_opts] << '-n' }
|
53
|
-
end.parse!
|
54
|
-
|
55
|
-
### MAIN
|
56
|
-
raise "Project is mandatory." if o[:project].nil?
|
57
|
-
|
58
|
-
raise "Project doesn't exist, aborting." unless
|
59
|
-
MiGA::Project.exist? o[:project]
|
60
|
-
p = MiGA::Project.new(o[:project])
|
61
|
-
d = MiGA::Daemon.new(p)
|
62
|
-
[:latency, :maxjobs, :ppn].each do |k|
|
63
|
-
d.runopts(k, o[k]) unless o[k].nil?
|
64
|
-
end
|
65
|
-
d.daemon(task, o[:daemon_opts])
|
66
|
-
|
data/actions/find_datasets
DELETED
@@ -1,61 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
# @package MiGA
|
4
|
-
# @license Artistic-2.0
|
5
|
-
|
6
|
-
o = {q:true, add:false, ref:false}
|
7
|
-
OptionParser.new do |opt|
|
8
|
-
opt.banner = <<BAN
|
9
|
-
Finds unregistered datasets based on result files.
|
10
|
-
|
11
|
-
Usage: #{$0} #{File.basename(__FILE__)} [options]
|
12
|
-
BAN
|
13
|
-
opt.separator ""
|
14
|
-
opt.on("-P", "--project PATH",
|
15
|
-
"(Mandatory) Path to the project to use."){ |v| o[:project]=v }
|
16
|
-
opt.on("-a", "--add",
|
17
|
-
"Register the datasets found. By default, only lists them (dry run)."
|
18
|
-
){ |v| o[:add]=v }
|
19
|
-
opt.on("-t", "--type STRING",
|
20
|
-
"Type of datasets. Recognized types include:",
|
21
|
-
*MiGA::Dataset.KNOWN_TYPES.map{ |k,v| "~ #{k}: #{v[:description]}"}
|
22
|
-
){ |v| o[:type]=v.to_sym }
|
23
|
-
opt.on("-r", "--ref",
|
24
|
-
"If set, all datasets are registered as reference datasets."
|
25
|
-
){ |v| o[:ref]=v }
|
26
|
-
opt.on("-u", "--user STRING", "Owner of the dataset."){ |v| o[:user]=v }
|
27
|
-
opt.on("-v", "--verbose",
|
28
|
-
"Print additional information to STDERR."){ o[:q]=false }
|
29
|
-
opt.on("-d", "--debug INT", "Print debugging information to STDERR.") do |v|
|
30
|
-
v.to_i>1 ? MiGA::MiGA.DEBUG_TRACE_ON : MiGA::MiGA.DEBUG_ON
|
31
|
-
end
|
32
|
-
opt.on("-h", "--help", "Display this screen.") do
|
33
|
-
puts opt
|
34
|
-
exit
|
35
|
-
end
|
36
|
-
opt.separator ""
|
37
|
-
end.parse!
|
38
|
-
|
39
|
-
|
40
|
-
### MAIN
|
41
|
-
raise "-P is mandatory." if o[:project].nil?
|
42
|
-
|
43
|
-
$stderr.puts "Loading project." unless o[:q]
|
44
|
-
p = MiGA::Project.load(o[:project])
|
45
|
-
raise "Impossible to load project: #{o[:project]}" if p.nil?
|
46
|
-
|
47
|
-
$stderr.puts "Finding datasets." unless o[:q]
|
48
|
-
ud = p.unregistered_datasets
|
49
|
-
ud.each do |dn|
|
50
|
-
puts dn
|
51
|
-
if o[:add]
|
52
|
-
md = {}
|
53
|
-
[:type, :user].each{ |k| md[k]=o[k] unless o[k].nil? }
|
54
|
-
d = MiGA::Dataset.new(p, dn, o[:ref], md)
|
55
|
-
p.add_dataset(dn)
|
56
|
-
res = d.first_preprocessing
|
57
|
-
puts "- #{res}" unless o[:q]
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
$stderr.puts "Done." unless o[:q]
|
data/actions/import_datasets
DELETED
@@ -1,83 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
# @package MiGA
|
4
|
-
# @license Artistic-2.0
|
5
|
-
|
6
|
-
o = {q:true, info:false, force:false, method: :hardlink }
|
7
|
-
OptionParser.new do |opt|
|
8
|
-
opt.banner = <<BAN
|
9
|
-
Link datasets (including results) from one project to another.
|
10
|
-
|
11
|
-
Usage: #{$0} #{File.basename(__FILE__)} [options]
|
12
|
-
BAN
|
13
|
-
opt.separator ""
|
14
|
-
opt.on("-P", "--project-source PATH",
|
15
|
-
"(Mandatory) Path to the project that contains the dataset."
|
16
|
-
){ |v| o[:project1]=v }
|
17
|
-
opt.on("-Q", "--project-target PATH",
|
18
|
-
"(Mandatory) Path to the project where to link the dataset."
|
19
|
-
){ |v| o[:project2]=v }
|
20
|
-
opt.on("-D", "--dataset STRING",
|
21
|
-
"ID of the dataset to link."){ |v| o[:dataset]=v.miga_name }
|
22
|
-
opt.on("-f", "--force",
|
23
|
-
"Forces linking, even if dataset's preprocessing is incomplete."
|
24
|
-
){ |v| o[:force]=v }
|
25
|
-
opt.on("-s", "--symlink",
|
26
|
-
"Creates symlinks instead of the default hard links."
|
27
|
-
){ o[:method] = :symlink }
|
28
|
-
opt.on("-c", "--copy",
|
29
|
-
"Creates copies instead of the default hard links."){ o[:method] = :copy }
|
30
|
-
opt.on("--[no-]ref",
|
31
|
-
"If set, links only reference (or only non-reference) datasets."
|
32
|
-
){ |v| o[:ref]=v }
|
33
|
-
opt.on("--[no-]multi",
|
34
|
-
"If set, links only multi-species (or only single-species) datasets."
|
35
|
-
){ |v| o[:multi]=v }
|
36
|
-
opt.on("-t", "--taxonomy RANK:TAXON",
|
37
|
-
"Filter by taxonomy."){ |v| o[:taxonomy]=MiGA::Taxonomy.new v }
|
38
|
-
opt.on("-v", "--verbose",
|
39
|
-
"Print additional information to STDERR."){ o[:q]=false }
|
40
|
-
opt.on("-d", "--debug INT", "Print debugging information to STDERR.") do |v|
|
41
|
-
v.to_i>1 ? MiGA::MiGA.DEBUG_TRACE_ON : MiGA::MiGA.DEBUG_ON
|
42
|
-
end
|
43
|
-
opt.on("-h", "--help", "Display this screen.") do
|
44
|
-
puts opt
|
45
|
-
exit
|
46
|
-
end
|
47
|
-
opt.separator ""
|
48
|
-
end.parse!
|
49
|
-
|
50
|
-
|
51
|
-
### MAIN
|
52
|
-
raise "-P is mandatory." if o[:project1].nil?
|
53
|
-
raise "-Q is mandatory." if o[:project2].nil?
|
54
|
-
|
55
|
-
$stderr.puts "Loading project." unless o[:q]
|
56
|
-
p = MiGA::Project.load(o[:project1])
|
57
|
-
raise "Impossible to load project: #{o[:project1]}" if p.nil?
|
58
|
-
q = MiGA::Project.load(o[:project2])
|
59
|
-
raise "Impossible to load project: #{o[:project2]}" if q.nil?
|
60
|
-
|
61
|
-
$stderr.puts "Listing dataset." unless o[:q]
|
62
|
-
if o[:dataset].nil?
|
63
|
-
ds = p.datasets
|
64
|
-
else
|
65
|
-
ds = [p.dataset(o[:dataset])]
|
66
|
-
end
|
67
|
-
ds.select!{|d| d.name == o[:dataset]} unless o[:dataset].nil?
|
68
|
-
ds.select!{|d| d.is_ref? == o[:ref] } unless o[:ref].nil?
|
69
|
-
ds.select! do |d|
|
70
|
-
(not d.metadata[:type].nil?) and
|
71
|
-
(MiGA::Dataset.KNOWN_TYPES[d.metadata[:type]][:multi] == o[:multi])
|
72
|
-
end unless o[:multi].nil?
|
73
|
-
ds.select! do |d|
|
74
|
-
(not d.metadata[:tax].nil?) and d.metadata[:tax].is_in?(o[:taxonomy])
|
75
|
-
end unless o[:taxonomy].nil?
|
76
|
-
ds.each do |d|
|
77
|
-
next unless o[:force] or d.done_preprocessing?
|
78
|
-
puts d.name
|
79
|
-
q.import_dataset(d, o[:method])
|
80
|
-
end
|
81
|
-
|
82
|
-
$stderr.puts "Done." unless o[:q]
|
83
|
-
|
data/actions/index_taxonomy
DELETED
@@ -1,68 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
# @package MiGA
|
4
|
-
# @license Artistic-2.0
|
5
|
-
|
6
|
-
require "miga/tax_index"
|
7
|
-
|
8
|
-
o = {q:true, format: :json}
|
9
|
-
OptionParser.new do |opt|
|
10
|
-
opt.banner = <<BAN
|
11
|
-
Creates a taxonomy-indexed list of the datasets.
|
12
|
-
|
13
|
-
Usage: #{$0} #{File.basename(__FILE__)} [options]
|
14
|
-
BAN
|
15
|
-
opt.separator ""
|
16
|
-
opt.on("-P", "--project PATH",
|
17
|
-
"(Mandatory) Path to the project to read."){ |v| o[:project]=v }
|
18
|
-
opt.on("-i", "--index PATH",
|
19
|
-
"(Mandatory) File to create with the index."){ |v| o[:index]=v }
|
20
|
-
opt.on("-f", "--format STRING",
|
21
|
-
"Format of the index file. By default: #{o[:format]}. Supported: " +
|
22
|
-
"json, tab."){ |v| o[:format]=v.to_sym }
|
23
|
-
opt.on("--[no-]multi",
|
24
|
-
"If set, lists only multi-species (or only single-species) datasets."
|
25
|
-
){ |v| o[:multi]=v }
|
26
|
-
opt.on("-v", "--verbose",
|
27
|
-
"Print additional information to STDERR."){ o[:q]=false }
|
28
|
-
opt.on("-d", "--debug INT", "Print debugging information to STDERR.") do |v|
|
29
|
-
v.to_i>1 ? MiGA::MiGA.DEBUG_TRACE_ON : MiGA::MiGA.DEBUG_ON
|
30
|
-
end
|
31
|
-
opt.on("-h", "--help", "Display this screen.") do
|
32
|
-
puts opt
|
33
|
-
exit
|
34
|
-
end
|
35
|
-
opt.separator ""
|
36
|
-
end.parse!
|
37
|
-
|
38
|
-
### MAIN
|
39
|
-
raise "-P is mandatory." if o[:project].nil?
|
40
|
-
raise "-i is mandatory." if o[:index].nil?
|
41
|
-
|
42
|
-
$stderr.puts "Loading project." unless o[:q]
|
43
|
-
p = MiGA::Project.load(o[:project])
|
44
|
-
raise "Impossible to load project: #{o[:project]}" if p.nil?
|
45
|
-
|
46
|
-
$stderr.puts "Loading datasets." unless o[:q]
|
47
|
-
ds = p.datasets
|
48
|
-
ds.select!{|d| not d.metadata[:tax].nil? }
|
49
|
-
ds.select! do |d|
|
50
|
-
(not d.metadata[:type].nil?) and
|
51
|
-
(MiGA::Dataset.KNOWN_TYPES[d.metadata[:type]][:multi] == o[:multi])
|
52
|
-
end unless o[:multi].nil?
|
53
|
-
|
54
|
-
$stderr.puts "Indexing taxonomy." unless o[:q]
|
55
|
-
tax_index = MiGA::TaxIndex.new
|
56
|
-
ds.each { |d| tax_index << d }
|
57
|
-
|
58
|
-
$stderr.puts "Saving index." unless o[:q]
|
59
|
-
fh = File.open(o[:index], "w")
|
60
|
-
if o[:format]==:json
|
61
|
-
fh.print tax_index.to_json
|
62
|
-
elsif o[:format]==:tab
|
63
|
-
fh.print tax_index.to_tab
|
64
|
-
end
|
65
|
-
fh.close
|
66
|
-
|
67
|
-
$stderr.puts "Done." unless o[:q]
|
68
|
-
|
data/actions/list_datasets
DELETED
@@ -1,81 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
# @package MiGA
|
4
|
-
# @license Artistic-2.0
|
5
|
-
|
6
|
-
o = {q:true, info:false, processing:false}
|
7
|
-
OptionParser.new do |opt|
|
8
|
-
opt.banner = <<BAN
|
9
|
-
Lists all registered datasets in an MiGA project.
|
10
|
-
|
11
|
-
Usage: #{$0} #{File.basename(__FILE__)} [options]
|
12
|
-
BAN
|
13
|
-
opt.separator ""
|
14
|
-
opt.on("-P", "--project PATH",
|
15
|
-
"(Mandatory) Path to the project to read."){ |v| o[:project]=v }
|
16
|
-
opt.on("-D", "--dataset STRING",
|
17
|
-
"ID of the dataset to read."){ |v| o[:dataset]=v.miga_name }
|
18
|
-
opt.on("--[no-]ref",
|
19
|
-
"If set, lists only reference (or only non-reference) datasets."
|
20
|
-
){ |v| o[:ref]=v }
|
21
|
-
opt.on("--[no-]multi",
|
22
|
-
"If set, lists only multi-species (or only single-species) datasets."
|
23
|
-
){ |v| o[:multi]=v }
|
24
|
-
opt.on("-i", "--info",
|
25
|
-
"Print additional information on each dataset."){ |v| o[:info]=v }
|
26
|
-
opt.on("-p", "--processing",
|
27
|
-
"Print information on processing advance."){ |v| o[:processing]=v }
|
28
|
-
opt.on("-t", "--taxonomy RANK:TAXON",
|
29
|
-
"Filter by taxonomy."){ |v| o[:taxonomy]=MiGA::Taxonomy.new v }
|
30
|
-
opt.on("-m", "--metadata STRING",
|
31
|
-
"Print name and metadata field only. If set, ignores -i."
|
32
|
-
){ |v| o[:datum]=v }
|
33
|
-
opt.on("-v", "--verbose",
|
34
|
-
"Print additional information to STDERR."){ o[:q]=false }
|
35
|
-
opt.on("-d", "--debug INT", "Print debugging information to STDERR.") do |v|
|
36
|
-
v.to_i>1 ? MiGA::MiGA.DEBUG_TRACE_ON : MiGA::MiGA.DEBUG_ON
|
37
|
-
end
|
38
|
-
opt.on("-h", "--help", "Display this screen.") do
|
39
|
-
puts opt
|
40
|
-
exit
|
41
|
-
end
|
42
|
-
opt.separator ""
|
43
|
-
end.parse!
|
44
|
-
|
45
|
-
|
46
|
-
### MAIN
|
47
|
-
raise "-P is mandatory." if o[:project].nil?
|
48
|
-
|
49
|
-
$stderr.puts "Loading project." unless o[:q]
|
50
|
-
p = MiGA::Project.load(o[:project])
|
51
|
-
raise "Impossible to load project: #{o[:project]}" if p.nil?
|
52
|
-
|
53
|
-
$stderr.puts "Listing datasets." unless o[:q]
|
54
|
-
if o[:dataset].nil?
|
55
|
-
ds = p.datasets
|
56
|
-
elsif MiGA::Dataset.exist? p, o[:dataset]
|
57
|
-
ds = [p.dataset(o[:dataset])]
|
58
|
-
else
|
59
|
-
ds = []
|
60
|
-
end
|
61
|
-
ds.select!{|d| d.is_ref? == o[:ref] } unless o[:ref].nil?
|
62
|
-
ds.select! do |d|
|
63
|
-
(not d.metadata[:type].nil?) and
|
64
|
-
(MiGA::Dataset.KNOWN_TYPES[d.metadata[:type]][:multi] == o[:multi])
|
65
|
-
end unless o[:multi].nil?
|
66
|
-
ds.select! do |d|
|
67
|
-
(not d.metadata[:tax].nil?) and d.metadata[:tax].is_in?(o[:taxonomy])
|
68
|
-
end unless o[:taxonomy].nil?
|
69
|
-
if not o[:datum].nil?
|
70
|
-
ds.each{|d| puts "#{d.name}\t#{d.metadata[ o[:datum] ] || "?"}"}
|
71
|
-
elsif o[:info]
|
72
|
-
puts MiGA::MiGA.tabulate(MiGA::Dataset.INFO_FIELDS, ds.map{ |d| d.info })
|
73
|
-
elsif o[:processing]
|
74
|
-
comp = ["undef","done","queued"]
|
75
|
-
puts MiGA::MiGA.tabulate([:name] + MiGA::Dataset.PREPROCESSING_TASKS,
|
76
|
-
ds.map{ |d| [d.name] + d.profile_advance.map{ |i| comp[i] } })
|
77
|
-
else
|
78
|
-
ds.each{|d| puts d.name}
|
79
|
-
end
|
80
|
-
|
81
|
-
$stderr.puts "Done." unless o[:q]
|
data/actions/list_files
DELETED
@@ -1,63 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
# @package MiGA
|
4
|
-
# @license Artistic-2.0
|
5
|
-
|
6
|
-
o = {q:true, details:false, json:true}
|
7
|
-
OptionParser.new do |opt|
|
8
|
-
opt.banner = <<BAN
|
9
|
-
Lists all registered files from the results of a dataset or a project.
|
10
|
-
|
11
|
-
Usage: #{$0} #{File.basename(__FILE__)} [options]
|
12
|
-
BAN
|
13
|
-
opt.separator ""
|
14
|
-
opt.on("-P", "--project PATH",
|
15
|
-
"(Mandatory) Path to the project to read."){ |v| o[:project]=v }
|
16
|
-
opt.on("-D", "--dataset STRING",
|
17
|
-
"ID of the dataset to read. If not set, project-wide results are shown."
|
18
|
-
){ |v| o[:dataset]=v.miga_name }
|
19
|
-
opt.on("-i", "--info",
|
20
|
-
"If set, it prints additional details for each file."
|
21
|
-
){ |v| o[:details]=v }
|
22
|
-
opt.on("--[no-]json",
|
23
|
-
"If set to no, excludes json files containing results metadata."
|
24
|
-
){ |v| o[:json]=v }
|
25
|
-
opt.on("-v", "--verbose",
|
26
|
-
"Print additional information to STDERR."){ o[:q]=false }
|
27
|
-
opt.on("-d", "--debug INT", "Print debugging information to STDERR.") do |v|
|
28
|
-
v.to_i>1 ? MiGA::MiGA.DEBUG_TRACE_ON : MiGA::MiGA.DEBUG_ON
|
29
|
-
end
|
30
|
-
opt.on("-h", "--help", "Display this screen.") do
|
31
|
-
puts opt
|
32
|
-
exit
|
33
|
-
end
|
34
|
-
opt.separator ""
|
35
|
-
end.parse!
|
36
|
-
|
37
|
-
|
38
|
-
### MAIN
|
39
|
-
raise "-P is mandatory." if o[:project].nil?
|
40
|
-
|
41
|
-
$stderr.puts "Loading project." unless o[:q]
|
42
|
-
p = MiGA::Project.load(o[:project])
|
43
|
-
raise "Impossible to load project: #{o[:project]}" if p.nil?
|
44
|
-
|
45
|
-
if o[:dataset].nil?
|
46
|
-
results = p.results
|
47
|
-
else
|
48
|
-
$stderr.puts "Loading dataset." unless o[:q]
|
49
|
-
ds = p.dataset(o[:dataset])
|
50
|
-
raise "Impossible to load dataset: #{o[:dataset]}" if ds.nil?
|
51
|
-
results = ds.results
|
52
|
-
end
|
53
|
-
|
54
|
-
$stderr.puts "Listing files." unless o[:q]
|
55
|
-
results.each do |result|
|
56
|
-
puts "#{ "#{result.path}\t\t" if o[:details] }#{result.path}" if o[:json]
|
57
|
-
result.each_file do |k,f|
|
58
|
-
puts "#{ "#{result.path}\t#{k}\t" if o[:details] }#{result.dir}/#{f}"
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
$stderr.puts "Done." unless o[:q]
|
63
|
-
|
data/actions/unlink_dataset
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
# @package MiGA
|
4
|
-
# @license Artistic-2.0
|
5
|
-
|
6
|
-
o = {q:true, remove:false}
|
7
|
-
OptionParser.new do |opt|
|
8
|
-
opt.banner = <<BAN
|
9
|
-
Removes a dataset from an MiGA project.
|
10
|
-
|
11
|
-
Usage: #{$0} #{File.basename(__FILE__)} [options]
|
12
|
-
BAN
|
13
|
-
opt.separator ""
|
14
|
-
opt.on("-P", "--project PATH",
|
15
|
-
"(Mandatory) Path to the project to use."){ |v| o[:project]=v }
|
16
|
-
opt.on("-D", "--dataset PATH",
|
17
|
-
"(Mandatory) ID of the dataset to create."){ |v| o[:dataset]=v }
|
18
|
-
opt.on("-r", "--remove",
|
19
|
-
"Also remove all associated files.",
|
20
|
-
"By default, only unlinks from metadata."){ o[:remove]=true }
|
21
|
-
opt.on("-v", "--verbose",
|
22
|
-
"Print additional information to STDERR."){ o[:q]=false }
|
23
|
-
opt.on("-d", "--debug INT", "Print debugging information to STDERR.") do |v|
|
24
|
-
v.to_i>1 ? MiGA::MiGA.DEBUG_TRACE_ON : MiGA::MiGA.DEBUG_ON
|
25
|
-
end
|
26
|
-
opt.on("-h", "--help", "Display this screen.") do
|
27
|
-
puts opt
|
28
|
-
exit
|
29
|
-
end
|
30
|
-
opt.separator ""
|
31
|
-
end.parse!
|
32
|
-
|
33
|
-
|
34
|
-
### MAIN
|
35
|
-
raise "-P is mandatory." if o[:project].nil?
|
36
|
-
raise "-D is mandatory." if o[:dataset].nil?
|
37
|
-
|
38
|
-
$stderr.puts "Loading project." unless o[:q]
|
39
|
-
p = MiGA::Project.load(o[:project])
|
40
|
-
raise "Impossible to load project: #{o[:project]}" if p.nil?
|
41
|
-
|
42
|
-
$stderr.puts "Unlinking dataset." unless o[:q]
|
43
|
-
raise "Dataset doesn't exist, aborting." unless
|
44
|
-
MiGA::Dataset.exist?(p, o[:dataset])
|
45
|
-
d = p.unlink_dataset(o[:dataset])
|
46
|
-
d.remove! if o[:remove]
|
47
|
-
|
48
|
-
$stderr.puts "Done." unless o[:q]
|
49
|
-
|