From: "Anthony G. Basile" <blueness@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/grss:master commit in: grs/
Date: Tue, 7 Jul 2015 02:17:32 +0000 (UTC) [thread overview]
Message-ID: <1436235599.3db7628eb5a3c05e0b11d346b2f8dad4da56136a.blueness@gentoo> (raw)
commit: 3db7628eb5a3c05e0b11d346b2f8dad4da56136a
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 7 02:19:59 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Tue Jul 7 02:19:59 2015 +0000
URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=3db7628e
grs/PivotChroot.py: introduce 'pivot' directive.
grs/Interpret.py | 6 ++++++
grs/PivotChroot.py | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 64 insertions(+)
diff --git a/grs/Interpret.py b/grs/Interpret.py
index 6525c9e..8b1166b 100644
--- a/grs/Interpret.py
+++ b/grs/Interpret.py
@@ -87,6 +87,7 @@ class Interpret(Daemon):
md = MountDirectories(portage_configroot, package, logfile)
po = Populate(nameserver, libdir, workdir, portage_configroot, logfile)
ru = RunScript(libdir, portage_configroot, logfile)
+ pc = PivotChroot(tmdpir, portage_configroot, logfile)
ke = Kernel(libdir, portage_configroot, kernelroot, package, logfile)
bi = TarIt(name, portage_configroot, logfile)
@@ -170,6 +171,11 @@ class Interpret(Daemon):
stampit(progress)
continue
ru.runscript(obj)
+ elif verb == 'pivot':
+ if smartlog(l, obj):
+ stampit(progress)
+ continue
+ pc.pivot(obj, md)
elif verb == 'clean':
if smartlog(l, obj, False):
stampit(progress)
diff --git a/grs/PivotChroot.py b/grs/PivotChroot.py
new file mode 100644
index 0000000..3392559
--- /dev/null
+++ b/grs/PivotChroot.py
@@ -0,0 +1,58 @@
+#!/usr/bin/env python
+
+import glob
+import re
+import os
+import shutil
+
+from grs.Constants import CONST
+from grs.MountDirectories import MountDirectories
+
+
+class PivotChroot():
+ """ doc here
+ more doc
+ """
+
+ def __init__(self, tmpdir = CONST.TMPDIR, portage_configroot = CONST.PORTAGE_CONFIGROOT, \
+ logfile = CONST.LOGFILE):
+ """ doc here
+ more doc
+ """
+ self.tmpdir = tmpdir
+ self.portage_configroot = portage_configroot
+ self.logfile = logfile
+
+
+ def pivot(self, subchroot, md):
+ """ doc here
+ more doc
+ """
+ some_mounted, all_mounted = md.are_mounted()
+ if some_mounted:
+ md.umount_all()
+
+ # TODO: we need to move this code into its own class and inherit
+ # Rotate any previous portage_configroots out of the way
+ dirs = glob.glob('%s.*' % self.portage_configroot)
+ indexed_dir = {}
+ for d in dirs:
+ m = re.search('^.+\.(\d+)$', d)
+ indexed_dir[int(m.group(1))] = d
+ count = list(indexed_dir.keys())
+ count.sort()
+ count.reverse()
+ for c in count:
+ current_dir = indexed_dir[c]
+ m = re.search('^(.+)\.\d+$', current_dir)
+ next_dir = '%s.%d' % (m.group(1), c+1)
+ shutil.move(current_dir, next_dir)
+ # If there is a directory, then move it to %s.0
+ if os.path.isdir(self.portage_configroot):
+ shutil.move(self.portage_configroot, '%s.0' % self.portage_configroot)
+
+ inner_chroot = os.path.join(self.portage_configroot, subdir)
+ shutil.move(inner_chroot, os.path.join(self.tmpdir, 'system'))
+
+ if all_mounted:
+ md.mount_all()
next reply other threads:[~2015-07-07 2:17 UTC|newest]
Thread overview: 139+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-07 2:17 Anthony G. Basile [this message]
-- strict thread matches above, loose matches on Subject: below --
2022-07-20 2:22 [gentoo-commits] proj/grss:master commit in: grs/ Anthony G. Basile
2022-07-20 1:49 Anthony G. Basile
2022-07-19 20:22 Anthony G. Basile
2022-07-19 20:18 Anthony G. Basile
2022-07-18 21:13 Anthony G. Basile
2019-04-19 12:29 Anthony G. Basile
2018-11-18 19:09 Anthony G. Basile
2018-11-12 3:08 Anthony G. Basile
2018-11-11 23:57 Anthony G. Basile
2018-11-11 23:35 Anthony G. Basile
2018-11-11 23:16 Anthony G. Basile
2018-06-25 20:32 Anthony G. Basile
2018-04-14 14:53 Anthony G. Basile
2018-04-10 3:14 Anthony G. Basile
2018-02-20 2:27 Anthony G. Basile
2018-02-20 2:04 Anthony G. Basile
2018-02-18 22:38 Anthony G. Basile
2018-02-18 16:37 Anthony G. Basile
2018-02-06 11:57 Anthony G. Basile
2018-02-06 11:42 Anthony G. Basile
2018-02-06 11:33 Anthony G. Basile
2018-02-06 10:55 Anthony G. Basile
2018-01-28 12:31 Anthony G. Basile
2018-01-28 12:09 Anthony G. Basile
2018-01-15 1:31 Anthony G. Basile
2018-01-15 1:23 Anthony G. Basile
2018-01-14 18:22 Anthony G. Basile
2018-01-14 17:05 Anthony G. Basile
2018-01-14 15:02 Anthony G. Basile
2018-01-14 14:37 Anthony G. Basile
2018-01-14 14:07 Anthony G. Basile
2018-01-13 17:40 Anthony G. Basile
2018-01-10 21:02 Anthony G. Basile
2018-01-10 20:40 Anthony G. Basile
2017-12-28 17:54 Anthony G. Basile
2017-12-28 17:22 Anthony G. Basile
2017-12-27 9:25 Anthony G. Basile
2017-12-26 14:19 Anthony G. Basile
2017-12-26 0:04 Anthony G. Basile
2017-12-26 0:04 Anthony G. Basile
2017-12-26 0:04 Anthony G. Basile
2017-12-25 23:38 Anthony G. Basile
2017-12-25 23:24 Anthony G. Basile
2017-12-23 16:04 Anthony G. Basile
2017-12-23 14:15 Anthony G. Basile
2016-03-23 15:08 Anthony G. Basile
2016-03-23 15:05 Anthony G. Basile
2015-11-26 19:48 Anthony G. Basile
2015-10-10 20:20 Anthony G. Basile
2015-10-10 19:36 Anthony G. Basile
2015-10-10 19:07 Anthony G. Basile
2015-10-10 12:22 Anthony G. Basile
2015-10-10 11:44 Anthony G. Basile
2015-10-10 11:22 Anthony G. Basile
2015-10-10 11:20 Anthony G. Basile
2015-10-10 11:10 Anthony G. Basile
2015-10-10 1:46 Anthony G. Basile
2015-10-10 1:40 Anthony G. Basile
2015-10-10 1:34 Anthony G. Basile
2015-10-10 1:26 Anthony G. Basile
2015-10-10 1:23 Anthony G. Basile
2015-10-10 1:18 Anthony G. Basile
2015-10-10 0:34 Anthony G. Basile
2015-10-10 0:29 Anthony G. Basile
2015-10-09 23:33 Anthony G. Basile
2015-10-09 23:33 Anthony G. Basile
2015-10-09 23:30 Anthony G. Basile
2015-10-09 23:11 Anthony G. Basile
2015-10-09 23:06 Anthony G. Basile
2015-10-08 23:52 Anthony G. Basile
2015-10-08 18:03 Anthony G. Basile
2015-10-08 17:20 Anthony G. Basile
2015-10-07 11:28 Anthony G. Basile
2015-10-07 11:15 Anthony G. Basile
2015-10-07 11:07 Anthony G. Basile
2015-10-07 11:03 Anthony G. Basile
2015-10-07 10:57 Anthony G. Basile
2015-10-07 8:31 Anthony G. Basile
2015-10-07 8:01 Anthony G. Basile
2015-10-06 10:07 Anthony G. Basile
2015-09-16 22:08 Anthony G. Basile
2015-09-16 5:16 Anthony G. Basile
2015-09-16 0:37 Anthony G. Basile
2015-09-16 0:32 Anthony G. Basile
2015-09-14 7:17 Anthony G. Basile
2015-09-14 5:32 Anthony G. Basile
2015-09-14 5:25 Anthony G. Basile
2015-09-14 0:29 Anthony G. Basile
2015-09-13 17:31 Anthony G. Basile
2015-09-12 20:56 Anthony G. Basile
2015-09-12 20:56 Anthony G. Basile
2015-08-09 20:26 Anthony G. Basile
2015-08-08 20:06 Anthony G. Basile
2015-08-08 18:01 Anthony G. Basile
2015-08-08 17:51 Anthony G. Basile
2015-07-29 0:20 Anthony G. Basile
2015-07-28 22:44 Anthony G. Basile
2015-07-27 20:49 Anthony G. Basile
2015-07-25 22:36 Anthony G. Basile
2015-07-14 23:37 Anthony G. Basile
2015-07-14 23:29 Anthony G. Basile
2015-07-14 23:19 Anthony G. Basile
2015-07-14 23:16 Anthony G. Basile
2015-07-14 23:02 Anthony G. Basile
2015-07-14 22:39 Anthony G. Basile
2015-07-14 22:35 Anthony G. Basile
2015-07-14 21:45 Anthony G. Basile
2015-07-14 21:21 Anthony G. Basile
2015-07-14 21:02 Anthony G. Basile
2015-07-14 20:55 Anthony G. Basile
2015-07-10 12:54 Anthony G. Basile
2015-07-10 2:37 Anthony G. Basile
2015-07-10 2:37 Anthony G. Basile
2015-07-10 2:01 Anthony G. Basile
2015-07-09 15:26 Anthony G. Basile
2015-07-09 1:44 Anthony G. Basile
2015-07-08 15:44 Anthony G. Basile
2015-07-08 10:28 Anthony G. Basile
2015-07-07 20:52 Anthony G. Basile
2015-07-07 20:34 Anthony G. Basile
2015-07-07 14:30 Anthony G. Basile
2015-07-07 12:54 Anthony G. Basile
2015-07-07 12:46 Anthony G. Basile
2015-07-07 12:44 Anthony G. Basile
2015-07-07 12:33 Anthony G. Basile
2015-07-07 11:26 Anthony G. Basile
2015-07-06 20:13 Anthony G. Basile
2015-07-06 18:13 Anthony G. Basile
2015-07-05 16:49 Anthony G. Basile
2015-07-05 12:04 Anthony G. Basile
2015-07-02 22:30 Anthony G. Basile
2015-07-01 17:27 Anthony G. Basile
2015-07-01 17:03 Anthony G. Basile
2015-07-01 16:53 Anthony G. Basile
2015-07-01 16:52 Anthony G. Basile
2015-07-01 16:07 Anthony G. Basile
2015-07-01 12:30 Anthony G. Basile
2015-07-01 12:23 Anthony G. Basile
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1436235599.3db7628eb5a3c05e0b11d346b2f8dad4da56136a.blueness@gentoo \
--to=blueness@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox