Class: UnpackStrategy::Fossil
Overview
Strategy for unpacking Fossil repositories.
Instance Attribute Summary
Attributes included from UnpackStrategy
Class Method Summary collapse
Methods included from SystemCommand::Mixin
system_command, system_command!
Methods included from UnpackStrategy
#dependencies, detect, #each_directory, #extract, #extract_nestedly, from_extension, from_magic, from_type, #initialize
Class Method Details
.can_extract?(path) ⇒ Boolean
17 18 19 20 21 22 23 |
# File 'unpack_strategy/fossil.rb', line 17 def self.can_extract?(path) return false unless path.magic_number.match?(/\ASQLite format 3\000/n) # Fossil database is made up of artifacts, so the `artifact` table must exist. query = "select count(*) from sqlite_master where type = 'view' and name = 'artifact'" system_command("sqlite3", args: [path, query]).stdout.to_i == 1 end |