45 lines
1 KiB
Python
Executable file
45 lines
1 KiB
Python
Executable file
#!/usr/bin/env python
|
|
|
|
import os
|
|
import os.path
|
|
import tarfile
|
|
try:
|
|
from StringIO import StringIO
|
|
except ImportError:
|
|
from io import StringIO
|
|
|
|
|
|
class TarWriter:
|
|
def __init__(self, out_name):
|
|
print("Creating: " + out_name)
|
|
self.tar = tarfile.open(out_name, "w")
|
|
|
|
def add(self, path):
|
|
print("Adding: " + path)
|
|
if os.path.isfile(path):
|
|
metadata = self.tar.gettarinfo(path)
|
|
try:
|
|
with open(path) as f:
|
|
buf = f.read()
|
|
fbuf = StringIO(buf)
|
|
metadata.size = len(buf)
|
|
self.tar.addfile(metadata, fbuf)
|
|
fbuf.close()
|
|
except:
|
|
fbuf = StringIO()
|
|
metadata.size = 0
|
|
self.tar.addfile(metadata, fbuf)
|
|
fbuf.close()
|
|
|
|
def close(self):
|
|
self.tar.close()
|
|
|
|
|
|
writer = TarWriter("battery.tar")
|
|
for root, dirs, files in os.walk("/sys/class/power_supply"):
|
|
for device in dirs:
|
|
for root2, dirs2, files2 in os.walk(root + "/" + device):
|
|
for f in files2:
|
|
writer.add(root2 + "/" + f)
|
|
writer.close()
|
|
print("Finished.")
|