summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Ipsum <richard.ipsum@codethink.co.uk>2014-06-03 12:17:44 +0100
committerRichard Ipsum <richard.ipsum@codethink.co.uk>2014-06-03 12:17:44 +0100
commit9d92cc9d71416bec5c9dca0dc92ce4ac51dc420e (patch)
tree44f342feaae85aa8aabff2a708d06a281b6f7843
parentcfbe08a30d3b9d426bc8de9fcd093c49dadf852a (diff)
downloadtbdiff-9d92cc9d71416bec5c9dca0dc92ce4ac51dc420e.tar.gz
Unfinished upgrades work
-rwxr-xr-xsystem-version-manager/system-version-manager21
1 files changed, 20 insertions, 1 deletions
diff --git a/system-version-manager/system-version-manager b/system-version-manager/system-version-manager
index 956abb2..532bee5 100755
--- a/system-version-manager/system-version-manager
+++ b/system-version-manager/system-version-manager
@@ -225,9 +225,28 @@ class SystemVersionManager(object):
self._rewrite_boot_menu(self.device, self._get_default(), self._get_systems())
- def cmd_upgrade(self, location):
+ def cmd_upgrade(self, args):
print 'Warning: attack kittens have been launched'
+ # get default (or running?) and snapshot that
+ # use running (current system) for now
+ label = self.current_system
+ orig = 'systems/%s/orig' % label # TODO: os.path.join ?
+ new_orig = 'systems/biscuit/orig'
+
+ # make snapshot
+ subprocess.check_call(['btrfs', 'subvolume', 'snapshot',
+ orig, new_orig])
+
+ for dir in ['baserock', 'bin', 'boot', 'dev', 'lib', 'lib64', 'media',
+ 'mnt', 'proc', 'sbin', 'usr']:
+ print 'Patching /%s' % dir
+
+ # Need to apply patch to the subvolume,
+ # so mount it somewhere
+
+ subprocess.Popen('/usr/bin/tbdiff-deploy', cwd=dir)
+
def _install_kernel(self, version_root):
'''Install the kernel outside of 'orig' or 'run' subvolumes