From 25f3947c16b57a9686500534e44423aab90b0bc7 Mon Sep 17 00:00:00 2001 From: Patrick J Cherry Date: Wed, 9 Nov 2016 09:30:12 +0000 Subject: First pass at fixing btrfs path This replaces the call to /sbin/btrfs with a method to find a btrfs program, which raises ENOENT if one cannot be found. --- bin/byteback-prune | 2 +- bin/byteback-restore | 2 +- bin/byteback-setup-client-receive | 2 +- lib/byteback/backup_directory.rb | 9 +++++++-- lib/byteback/util.rb | 7 +++++++ 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/bin/byteback-prune b/bin/byteback-prune index a91d003..a0cd0fb 100755 --- a/bin/byteback-prune +++ b/bin/byteback-prune @@ -147,4 +147,4 @@ if snapshots.empty? end info("Deleting #{snapshots.last.path}") -log_system("/sbin/btrfs subvolume delete #{snapshots.last.path}") +log_system("#{btrfs_bin} subvolume delete #{snapshots.last.path}") diff --git a/bin/byteback-restore b/bin/byteback-restore index 94babf8..2cd54c5 100755 --- a/bin/byteback-restore +++ b/bin/byteback-restore @@ -81,7 +81,7 @@ def restore_files(paths, snapshot, all) end args << "." - puts args.join(" " ) if @verbose + puts args.join(" ") if @verbose system(*args) end diff --git a/bin/byteback-setup-client-receive b/bin/byteback-setup-client-receive index 3673b6a..528ccc9 100755 --- a/bin/byteback-setup-client-receive +++ b/bin/byteback-setup-client-receive @@ -32,7 +32,7 @@ Dir.chdir(ENV['HOME']) # don't know why we wouldn't be here FileUtils.mkdir_p(@hostname) error("Couldn't create btrfs subvolume") unless - system("/sbin/btrfs subvolume create #{@hostname}/current") + system("#{btrfs_bin} subvolume create #{@hostname}/current") FileUtils.mkdir_p('.ssh') diff --git a/lib/byteback/backup_directory.rb b/lib/byteback/backup_directory.rb index 14a55cf..53491ff 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..07d7056 100644 --- a/lib/byteback/util.rb +++ b/lib/byteback/util.rb @@ -66,5 +66,12 @@ module Byteback pid2, status = Process.waitpid2(pid, 0) status.exitstatus end + + def btrfs_bin + path = '/bin/btrfs' + path = '/sbin/btrfs' unless File.exists?(path) + path + end + end end -- cgit v1.2.1