summaryrefslogtreecommitdiff
path: root/lib/byteback
diff options
context:
space:
mode:
authorChris Elsworth <chris.elsworth@bytemark.co.uk>2017-01-31 11:47:52 +0000
committerChris Elsworth <chris.elsworth@bytemark.co.uk>2017-01-31 11:47:52 +0000
commit9703376afbebf06711bf5d1e874a59f806afd0f2 (patch)
tree896f657ab4edefa34d0e5661709b91ae6da7ee71 /lib/byteback
parent1943b5a11ed6615816bd476d16f2f319edfc772d (diff)
parent51ff72f7b458909071c4a42dbd25ab28ac16f3f8 (diff)
Merge branch '12-fix-btrfs-path' into 'master'
"byteback-server fails to work with backported btrfs-{tools progs}" Closes #12 See merge request !4
Diffstat (limited to 'lib/byteback')
-rw-r--r--lib/byteback/backup_directory.rb9
-rw-r--r--lib/byteback/util.rb8
2 files changed, 15 insertions, 2 deletions
diff --git a/lib/byteback/backup_directory.rb b/lib/byteback/backup_directory.rb
index 89b0ae9..a39cf84 100644
--- a/lib/byteback/backup_directory.rb
+++ b/lib/byteback/backup_directory.rb
@@ -1,6 +1,11 @@
+require 'byteback/utils'
+
module Byteback
# Represents a particular timestamped backup directory
class Snapshot
+
+ include Byteback::Util
+
class << self
# What order to remove snapshots in to regain disk space?
#
@@ -111,11 +116,11 @@ module Byteback
end
def create!(from)
- system_no_error("/sbin/btrfs subvolume snapshot #{from} #{path}")
+ system_no_error("#{btrfs_bin} subvolume snapshot #{from} #{path}")
end
def delete!
- system_no_error("/sbin/btrfs subvolume delete #{path}")
+ system_no_error("#{btrfs_bin} subvolume delete #{path}")
end
# Returns the size of the given snapshot (runs du, may be slow)
diff --git a/lib/byteback/util.rb b/lib/byteback/util.rb
index 9a993d6..d70888b 100644
--- a/lib/byteback/util.rb
+++ b/lib/byteback/util.rb
@@ -66,5 +66,13 @@ module Byteback
pid2, status = Process.waitpid2(pid, 0)
status.exitstatus
end
+
+ def btrfs_bin
+ %w(/bin/btrfs /sbin/btrfs).each do |path|
+ return path if File.executable?(path)
+ end
+ raise Errno::ENOENT, 'btrfs'
+ end
+
end
end