public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Anthony G. Basile" <blueness@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/grss:master commit in: grs/
Date: Sat, 12 Sep 2015 20:56:40 +0000 (UTC)	[thread overview]
Message-ID: <1442091660.cd8a1249340c70ea0fce5fd9a1fb7f02a3dcf511.blueness@gentoo> (raw)

commit:     cd8a1249340c70ea0fce5fd9a1fb7f02a3dcf511
Author:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 12 18:17:49 2015 +0000
Commit:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat Sep 12 21:01:00 2015 +0000
URL:        https://gitweb.gentoo.org/proj/grss.git/commit/?id=cd8a1249

grs/HashIt.py: make into inheritable class.

 grs/{TarIt.py => HashIt.py} | 46 +++++++++---------------------------------
 grs/TarIt.py                | 49 ++++++++-------------------------------------
 grs/__init__.py             |  3 ++-
 3 files changed, 20 insertions(+), 78 deletions(-)

diff --git a/grs/TarIt.py b/grs/HashIt.py
similarity index 51%
copy from grs/TarIt.py
copy to grs/HashIt.py
index b63258b..817364a 100644
--- a/grs/TarIt.py
+++ b/grs/HashIt.py
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 #
-#    TarIt.py: this file is part of the GRS suite
+#    HashIt.py: this file is part of the GRS suite
 #    Copyright (C) 2015  Anthony G. Basile
 #
 #    This program is free software: you can redistribute it and/or modify
@@ -17,39 +17,13 @@
 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 import os
-from datetime import datetime
-from grs.Constants import CONST
 from grs.Execute import Execute
 
-class TarIt():
-    """ Create a tarball of the system and generate the hash values. """
-
-    def __init__(self, name, portage_configroot = CONST.PORTAGE_CONFIGROOT, logfile = CONST.LOGFILE):
-        self.portage_configroot = portage_configroot
-        self.logfile = logfile
-        # Prepare a year, month and day for a tarball name timestamp.
-        self.year = str(datetime.now().year).zfill(4)
-        self.month = str(datetime.now().month).zfill(2)
-        self.day = str(datetime.now().day).zfill(2)
-        self.tarball_name = '%s-%s%s%s.tar.xz' % (name, self.year, self.month, self.day)
-        self.digest_name = '%s.DIGESTS' % self.tarball_name
-
-
-    def tarit(self, alt_name = None):
-        # Create the tarball with the default name unless an alt_name is given.
-        if alt_name:
-            self.tarball_name = '%s-%s%s%s.tar.xz' % (alt_name, self.year, self.month, self.day)
-            self.digest_name = '%s.DIGESTS' % self.tarball_name
-        # We have to cd into the system's portage configroot and then out again.
-        cwd = os.getcwd()
-        os.chdir(self.portage_configroot)
-        tarball_path = os.path.join('..', self.tarball_name)
-        # TODO: This needs to be generalized for systems that don't support xattrs
-        xattr_opts = '--xattrs --xattrs-include=security.capability --xattrs-include=user.pax.flags'
-        cmd = 'tar %s -Jcf %s .' % (xattr_opts, tarball_path)
-        Execute(cmd, timeout=None, logfile=self.logfile)
-        os.chdir(cwd)
-
+class HashIt():
+    """ Create a DIGEST file for certain tarballs, or ISOs.  This class must
+        be inherited by a class which sets the medium_name and digest_name,
+        else we'll get an AttributeError exception.
+    """
 
     def hashit(self):
         """ Generate various hash values.  We hijack the 'logfile' which will
@@ -64,22 +38,22 @@ class TarIt():
         # Note: this first cmd clobbers the contents
         cmd = 'echo "# MD5 HASH"'
         Execute(cmd, logfile=self.digest_name)
-        cmd = 'md5sum %s' % self.tarball_name
+        cmd = 'md5sum %s' % self.medium_name
         Execute(cmd, timeout=60, logfile=self.digest_name)
 
         cmd = 'echo "# SHA1 HASH"'
         Execute(cmd, logfile=self.digest_name)
-        cmd = 'sha1sum %s' % self.tarball_name
+        cmd = 'sha1sum %s' % self.medium_name
         Execute(cmd, timeout=60, logfile=self.digest_name)
 
         cmd = 'echo "# SHA512 HASH"'
         Execute(cmd, logfile=self.digest_name)
-        cmd = 'sha512sum %s' % self.tarball_name
+        cmd = 'sha512sum %s' % self.medium_name
         Execute(cmd, timeout=60, logfile=self.digest_name)
 
         cmd = 'echo "# WHIRLPOOL HASH"'
         Execute(cmd, logfile=self.digest_name)
-        cmd = 'whirlpooldeep %s' % self.tarball_name
+        cmd = 'whirlpooldeep %s' % self.medium_name
         Execute(cmd, timeout=60, logfile=self.digest_name)
 
         os.chdir(cwd)

diff --git a/grs/TarIt.py b/grs/TarIt.py
index b63258b..d421cf2 100644
--- a/grs/TarIt.py
+++ b/grs/TarIt.py
@@ -20,9 +20,10 @@ import os
 from datetime import datetime
 from grs.Constants import CONST
 from grs.Execute import Execute
+from grs.HashIt import HashIt
 
-class TarIt():
-    """ Create a tarball of the system and generate the hash values. """
+class TarIt(HashIt):
+    """ Create a tarball of the system. """
 
     def __init__(self, name, portage_configroot = CONST.PORTAGE_CONFIGROOT, logfile = CONST.LOGFILE):
         self.portage_configroot = portage_configroot
@@ -31,55 +32,21 @@ class TarIt():
         self.year = str(datetime.now().year).zfill(4)
         self.month = str(datetime.now().month).zfill(2)
         self.day = str(datetime.now().day).zfill(2)
-        self.tarball_name = '%s-%s%s%s.tar.xz' % (name, self.year, self.month, self.day)
-        self.digest_name = '%s.DIGESTS' % self.tarball_name
+        self.medium_name = '%s-%s%s%s.tar.xz' % (name, self.year, self.month, self.day)
+        self.digest_name = '%s.DIGESTS' % self.medium_name
 
 
     def tarit(self, alt_name = None):
         # Create the tarball with the default name unless an alt_name is given.
         if alt_name:
-            self.tarball_name = '%s-%s%s%s.tar.xz' % (alt_name, self.year, self.month, self.day)
-            self.digest_name = '%s.DIGESTS' % self.tarball_name
+            self.medium_name = '%s-%s%s%s.tar.xz' % (alt_name, self.year, self.month, self.day)
+            self.digest_name = '%s.DIGESTS' % self.medium_name
         # We have to cd into the system's portage configroot and then out again.
         cwd = os.getcwd()
         os.chdir(self.portage_configroot)
-        tarball_path = os.path.join('..', self.tarball_name)
+        tarball_path = os.path.join('..', self.medium_name)
         # TODO: This needs to be generalized for systems that don't support xattrs
         xattr_opts = '--xattrs --xattrs-include=security.capability --xattrs-include=user.pax.flags'
         cmd = 'tar %s -Jcf %s .' % (xattr_opts, tarball_path)
         Execute(cmd, timeout=None, logfile=self.logfile)
         os.chdir(cwd)
-
-
-    def hashit(self):
-        """ Generate various hash values.  We hijack the 'logfile' which will
-            actually be the file containing the hashes.
-        """
-        # We need to be in the parent of the system's portage configroot because
-        # that's where we created the above tarball.  This should be the workdir,
-        # but its probably safer to be pedantic here.
-        cwd = os.getcwd()
-        os.chdir(os.path.join(self.portage_configroot, '..'))
-
-        # Note: this first cmd clobbers the contents
-        cmd = 'echo "# MD5 HASH"'
-        Execute(cmd, logfile=self.digest_name)
-        cmd = 'md5sum %s' % self.tarball_name
-        Execute(cmd, timeout=60, logfile=self.digest_name)
-
-        cmd = 'echo "# SHA1 HASH"'
-        Execute(cmd, logfile=self.digest_name)
-        cmd = 'sha1sum %s' % self.tarball_name
-        Execute(cmd, timeout=60, logfile=self.digest_name)
-
-        cmd = 'echo "# SHA512 HASH"'
-        Execute(cmd, logfile=self.digest_name)
-        cmd = 'sha512sum %s' % self.tarball_name
-        Execute(cmd, timeout=60, logfile=self.digest_name)
-
-        cmd = 'echo "# WHIRLPOOL HASH"'
-        Execute(cmd, logfile=self.digest_name)
-        cmd = 'whirlpooldeep %s' % self.tarball_name
-        Execute(cmd, timeout=60, logfile=self.digest_name)
-
-        os.chdir(cwd)

diff --git a/grs/__init__.py b/grs/__init__.py
index a011b2e..2ed47f7 100644
--- a/grs/__init__.py
+++ b/grs/__init__.py
@@ -16,10 +16,10 @@
 #    You should have received a copy of the GNU General Public License
 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-from grs.TarIt import TarIt
 from grs.Constants import CONST
 from grs.Daemon import Daemon
 from grs.Execute import Execute
+from grs.HashIt import HashIt
 from grs.Interpret import Interpret
 from grs.Log import Log
 from grs.Kernel import Kernel
@@ -30,4 +30,5 @@ from grs.Rotator import Rotator
 from grs.RunScript import RunScript
 from grs.Synchronize import Synchronize
 from grs.Seed import Seed
+from grs.TarIt import TarIt
 from grs.WorldConf import WorldConf


             reply	other threads:[~2015-09-12 20:56 UTC|newest]

Thread overview: 139+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-12 20:56 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-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-07  2:17 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=1442091660.cd8a1249340c70ea0fce5fd9a1fb7f02a3dcf511.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