sdr-replication 0.3.0 → 0.3.1
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/lib/replication/bagit_bag.rb +25 -9
- data/lib/replication/fixity.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8268fa7de43231b2863bff96d22b22bbf8b877a7
|
4
|
+
data.tar.gz: 6b16fd8fdc370dc7478427a325464b72f06f8002
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 95a66da7f71b2f1ab066d302db2224a5f0e45527902b6eaf4f969a8461df51a139a0a60c20fa34c782fdf05ca96e2ff90d7cafec2fb8e8458e7d2b7ea576132f
|
7
|
+
data.tar.gz: ce4c6952cd508364a15846c374d66f9ec84510010732d8ee970313bc544d07219a154c8b51a32160df77835a3adb2ab319ad43b399d6934ac1d88cd371c016d0
|
@@ -82,11 +82,11 @@ module Replication
|
|
82
82
|
end
|
83
83
|
|
84
84
|
# @param [Symbol] link_mode Specifies whether to :copy, :link, or :symlink the files to the payload directory
|
85
|
-
# @param [Pathname] source_dir The source location of the directory whose contents are to be
|
86
|
-
# @return [Pathname] Generate file_fixity_hash and send it to #
|
87
|
-
def
|
88
|
-
file_fixity_hash = Fixity.generate_checksums(source_dir,
|
89
|
-
|
85
|
+
# @param [Pathname] source_dir The source location of the directory whose contents are to be bagged
|
86
|
+
# @return [Pathname] Generate file_fixity_hash and send it to #add_files_to_payload
|
87
|
+
def add_dir_to_payload (link_mode, source_dir)
|
88
|
+
file_fixity_hash = Fixity.generate_checksums(source_dir, source_dir.find ,bag_checksum_types)
|
89
|
+
add_files_to_payload(link_mode, source_dir, file_fixity_hash)
|
90
90
|
payload_pathname
|
91
91
|
end
|
92
92
|
|
@@ -95,16 +95,27 @@ module Replication
|
|
95
95
|
# @param [Hash<String,FileFixity>] file_fixity_hash The list of files (with fixity data) to be added to the payload
|
96
96
|
# @return [Pathname] Copy or link the files specified in the file_fixity_hash to the payload directory,
|
97
97
|
# then update the payload manifest files
|
98
|
-
def
|
98
|
+
def add_files_to_payload(link_mode, source_basepath, file_fixity_hash)
|
99
99
|
file_fixity_hash.keys.each do |file_id|
|
100
100
|
source_pathname = source_basepath.join(file_id)
|
101
101
|
target_pathname = payload_pathname.join(file_id)
|
102
102
|
copy_file(link_mode, source_pathname, target_pathname)
|
103
103
|
end
|
104
|
-
write_manifest_checksums('manifest', file_fixity_hash)
|
104
|
+
write_manifest_checksums('manifest', add_data_prefix(file_fixity_hash))
|
105
105
|
payload_pathname
|
106
106
|
end
|
107
107
|
|
108
|
+
# @param [Hash<String,FileFixity>] file_fixity_hash key is file_id, values are Fixity objects containing checksums
|
109
|
+
# @return [Hash<String,FileFixity>] A revised hash with file_id paths prefixed with 'data/'
|
110
|
+
def add_data_prefix(file_fixity_hash)
|
111
|
+
new_hash = Hash.new
|
112
|
+
file_fixity_hash.values.each do |fixity|
|
113
|
+
fixity.file_id = "data/#{fixity.file_id}"
|
114
|
+
new_hash[fixity.file_id] = fixity
|
115
|
+
end
|
116
|
+
new_hash
|
117
|
+
end
|
118
|
+
|
108
119
|
# @param [Symbol] link_mode Specifies whether to :copy, :link, or :symlink the files to the payload directory
|
109
120
|
# @param [Pathname] source_pathname The source location of the file to be ingested
|
110
121
|
# @param [Pathname] target_pathname The location of the directory in which to place the file
|
@@ -135,7 +146,7 @@ module Replication
|
|
135
146
|
tarfile.tarfile_basepath = payload_pathname
|
136
147
|
tarfile.tarfile_fullpath = payload_pathname.join("#{tarfile_id}")
|
137
148
|
tarfile.create_tarfile
|
138
|
-
file_fixity_hash = Fixity.generate_checksums(
|
149
|
+
file_fixity_hash = Fixity.generate_checksums(payload_pathname,[tarfile.tarfile_fullpath],bag_checksum_types)
|
139
150
|
write_manifest_checksums('manifest', file_fixity_hash)
|
140
151
|
tarfile
|
141
152
|
end
|
@@ -211,13 +222,18 @@ module Replication
|
|
211
222
|
|
212
223
|
# @return [Hash<String,FileFixity>] create hash containing ids and checksums for all files in the bag's root directory
|
213
224
|
def generate_tagfile_checksums
|
225
|
+
# get list of all files in the bag home dir, except those starting with 'tagmanifest'
|
214
226
|
tagfiles = bag_pathname.children.reject{|file| file.basename.to_s.start_with?('tagmanifest')}
|
227
|
+
# generate checksums, using bag home dir as the base directory for file ids (per bagit spec)
|
215
228
|
Fixity.generate_checksums(bag_pathname, tagfiles, bag_checksum_types )
|
216
229
|
end
|
217
230
|
|
218
231
|
# @return [Hash<String,FileFixity>] create hash containing ids and checksums for all files in the bag's payload
|
219
232
|
def generate_payload_checksums
|
220
|
-
|
233
|
+
# get list of all files in the data directory
|
234
|
+
path_list = payload_pathname.find
|
235
|
+
# generate checksums, but use bag home dir as the base directory for file ids (per bagit spec)
|
236
|
+
Fixity.generate_checksums(bag_pathname, path_list, bag_checksum_types)
|
221
237
|
end
|
222
238
|
|
223
239
|
# @param [String] manifest_type The type of manifest file ('manifest' or 'tagmanifest') to be updated
|
data/lib/replication/fixity.rb
CHANGED
@@ -99,7 +99,7 @@ module Replication
|
|
99
99
|
path_list = base_pathname.find if path_list.nil?
|
100
100
|
file_fixity_hash = Hash.new
|
101
101
|
path_list.select{|pathname| pathname.file?}.each do |file|
|
102
|
-
file_fixity = Fixity.fixity_from_file(file, base_pathname)
|
102
|
+
file_fixity = Fixity.fixity_from_file(file, base_pathname, checksum_types)
|
103
103
|
file_fixity_hash[file_fixity.file_id] = file_fixity
|
104
104
|
end
|
105
105
|
file_fixity_hash
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sdr-replication
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Anderson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json_pure
|