summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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