[elbe-devel] [PATCH] Split out change archive functionality
Manuel Traut
manut at linutronix.de
Tue Jun 19 15:55:00 CEST 2018
From: Benedikt Spranger <b.spranger at linutronix.de>
The new <archivedir> feature has common task equal to chg_archive.
This preperatory patch split out the change archive functionality from
the chg_archive command into a module.
Signed-off-by: Benedikt Spranger <b.spranger at linutronix.de>
Signed-off-by: Manuel Traut <manut at linutronix.de>
---
debian/python-elbe-common.install | 1 +
debian/python3-elbe-common.install | 1 +
elbepack/archivedir.py | 42 ++++++++++++++++++++++++++++++
elbepack/commands/chg_archive.py | 36 ++-----------------------
4 files changed, 46 insertions(+), 34 deletions(-)
create mode 100644 elbepack/archivedir.py
diff --git a/debian/python-elbe-common.install b/debian/python-elbe-common.install
index 00757619..bc9f72e4 100644
--- a/debian/python-elbe-common.install
+++ b/debian/python-elbe-common.install
@@ -8,6 +8,7 @@
./usr/lib/python2.*/*-packages/elbepack/__init__.py
./usr/lib/python2.*/*-packages/elbepack/commands/__init__.py
./usr/lib/python2.*/*-packages/elbepack/aptprogress.py
+./usr/lib/python2.*/*-packages/elbepack/archivedir.py
./usr/lib/python2.*/*-packages/elbepack/config.py
./usr/lib/python2.*/*-packages/elbepack/default-preseed.xml
./usr/lib/python2.*/*-packages/elbepack/directories.py
diff --git a/debian/python3-elbe-common.install b/debian/python3-elbe-common.install
index 1c94cd3b..acd52e1c 100644
--- a/debian/python3-elbe-common.install
+++ b/debian/python3-elbe-common.install
@@ -8,6 +8,7 @@
./usr/lib/python3.*/*-packages/elbepack/__init__.py
./usr/lib/python3.*/*-packages/elbepack/commands/__init__.py
./usr/lib/python3.*/*-packages/elbepack/aptprogress.py
+./usr/lib/python3.*/*-packages/elbepack/archivedir.py
./usr/lib/python3.*/*-packages/elbepack/config.py
./usr/lib/python3.*/*-packages/elbepack/default-preseed.xml
./usr/lib/python3.*/*-packages/elbepack/directories.py
diff --git a/elbepack/archivedir.py b/elbepack/archivedir.py
new file mode 100644
index 00000000..833e1526
--- /dev/null
+++ b/elbepack/archivedir.py
@@ -0,0 +1,42 @@
+# ELBE - Debian Based Embedded Rootfilesystem Builder
+# Copyright (c) 2018 Benedikt Spranger <b.spranger at linutronix.de>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+import os
+
+from base64 import standard_b64encode
+from elbepack.treeutils import etree
+
+def enbase(fname):
+ infile = file(fname, "r")
+ s = infile.read()
+ enc = standard_b64encode(s)
+
+ splited = ""
+ i = 0
+ l_enc = len(enc)
+ while i < l_enc:
+ splited += (enc[i:i + 60] + "\n")
+ i += 60
+
+ return splited
+
+def chg_archive(xml, path, keep):
+ if os.path.isdir(path):
+ archive = '.archive.tbz'
+ if keep:
+ cmd = 'tar cfj .archive.tbz -C '
+ else:
+ cmd = 'tar cjf .archive.tbz --owner=root --group=root -C '
+ cmd += path + ' .'
+ os.system(cmd)
+ else:
+ archive = path
+ arch = xml.ensure_child("archive")
+ arch.set_text(enbase(archive))
+
+ if os.path.isdir(path):
+ os.remove(archive)
+
+ return xml
diff --git a/elbepack/commands/chg_archive.py b/elbepack/commands/chg_archive.py
index 90cc9732..dc4dcdd5 100644
--- a/elbepack/commands/chg_archive.py
+++ b/elbepack/commands/chg_archive.py
@@ -8,27 +8,10 @@ from __future__ import print_function
import sys
import os
-from base64 import standard_b64encode
-
+from elbepack.archivedir import chg_archive
from elbepack.treeutils import etree
from optparse import OptionParser
-
-def enbase(fname):
- infile = file(fname, "r")
- s = infile.read()
- enc = standard_b64encode(s)
-
- splited = ""
- i = 0
- l_enc = len(enc)
- while i < l_enc:
- splited += (enc[i:i + 60] + "\n")
- i += 60
-
- return splited
-
-
def run_command(argv):
oparser = OptionParser(
@@ -55,20 +38,8 @@ def run_command(argv):
print("Error reading xml file!")
sys.exit(20)
- if os.path.isdir(args[1]):
- archive = '.archive.tbz'
- if opt.keep_attributes:
- cmd = 'tar cfj .archive.tbz -C '
- else:
- cmd = 'tar cjf .archive.tbz --owner=root --group=root -C '
- cmd += args[1] + ' .'
- os.system(cmd)
- else:
- archive = args[1]
-
try:
- arch = xml.ensure_child("archive")
- arch.set_text(enbase(archive))
+ xml = chg_archive(xml, args[1], opt.keep_attributes)
except BaseException:
print("Error reading archive")
sys.exit(20)
@@ -78,6 +49,3 @@ def run_command(argv):
except BaseException:
print("Unable to write new xml file")
sys.exit(20)
-
- if os.path.isdir(args[1]):
- os.remove(archive)
--
2.17.1
More information about the elbe-devel
mailing list