mini_buildd.files module¶
- mini_buildd.files.find(path, name)¶
Find file name in path, recursively – return absolute path of first hit, else None
- class mini_buildd.files.DebianName(package, version)¶
Bases:
object
Debian package-related file names, based on package
name
(usually source name) andversion
Always strip epoch from version, and handles special mini-buildd types.
>>> dfn = DebianName("mypkg", "7:1.2.3-1") >>> dfn.dsc() 'mypkg_1.2.3-1.dsc' >>> dfn.changes("amd64") 'mypkg_1.2.3-1_amd64.changes' >>> dfn.changes("mips") 'mypkg_1.2.3-1_mips.changes' >>> dfn.changes("mips", apx="my-custom-apx") 'mypkg_1.2.3-1_my-custom-apx_mips.changes' >>> dfn.buildlog("mips") 'mypkg_1.2.3-1_mips.buildlog'
- classmethod uext(ext)¶
- gen(type_, apx=None, arch=None)¶
- dsc()¶
- changes(arch, apx=None)¶
- upload(arch, apx=None)¶
- buildlog(arch)¶
- json(apx, arch=None)¶
- class mini_buildd.files.Tar¶
Bases:
object
- add(file_paths, arcdir='')¶
- save_as(file_path)¶
- classmethod extract(file_path, dest_path)¶
- class mini_buildd.files.Path(base, subdirs=None, create=False)¶
Bases:
object
PATH string with some convenience functionality
>>> p = Path("/tmp", ["uff", None, "tata"]) >>> p.base '/tmp' >>> p.sub 'uff/tata' >>> p.full '/tmp/uff/tata' >>> p.join("more", "sub", "dirs") '/tmp/uff/tata/more/sub/dirs'
>>> p = Path("/tmp") >>> p.sub ''
- create()¶
- new_sub(subdirs=None, create=False)¶
- join(*args)¶
- sub_join(*args)¶
- expire(older_than)¶
Expire directories ‘older than’
- ifiles(path, extension, after=None, before=None)¶
Fast recursive file finder using os.scandir()
- removeprefix(path)¶
- class mini_buildd.files.File(name, description=None, snippet=None, comment='#', shebang=None, finalizer=None, placeholders=None)¶
Bases:
deque
Line based text file (config or script)
>>> pm = PerlModule("perl").add("# set foo\n$bar = undef;") >>> pm.get() '# set foo\n$bar = undef;\n1;\n' >>> pm.get(snippet=True) '# set foo\n$bar = undef;\n' >>> pm.get(snippet=True, comments=False) '$bar = undef;\n'
>>> bs = BashScript("bash").add("# echo foo\necho bar") >>> bs.get() '#!/bin/bash -e\n# echo foo\necho bar\n' >>> bs.get(snippet=True) '# echo foo\necho bar\n' >>> bs.get(snippet=True, comments=False) 'echo bar\n'
>>> test_file = "/tmp/mini_buildd_test_conf_file" >>> if os.path.exists(test_file): os.remove(test_file) >>> File("test_file").add("my_option=7\n").update_as(test_file) True >>> File("test_file").add("my_option=7\n").update_as(test_file) False >>> File("test_file").add("my_option=8\n").update_as(test_file) True
>>> dos = File("dos.txt").add_file("test-data/dos.txt") >>> with util.fopen("test-data/unix.txt", newline="") as unix: unix.read() == dos.get() True >>> with util.fopen("test-data/dos.txt", newline="") as dos_file: dos_file.read() == dos.get() False
# rmtree: Enable with caution # >>> dir = Dir(“./test-data/dirtest”).add(File(“file1.txt”, snippet=”test1 data”)).add(File(“file2.txt”, snippet=”test2 data”)) # >>> import shutil # >>> shutil.rmtree(dir.path, ignore_errors=True) # >>> dir.update() # True # >>> dir.update() # False # >>> dir.update() # False # >>> dummy = dir[“file1.txt”].add(“nonne zeile”) # >>> dir.update() # True # >>> shutil.rmtree(dir.path)
- classmethod shebang_from_data(data)¶
- classmethod shebang_from_path(path)¶
- get(snippet=False, comments=True)¶
- banner(description)¶
- add(data, snippet=True, description=None)¶
- add_file(path, **kwargs)¶
- save_as(path, **kwargs)¶
- update_as(path, **kwargs)¶
Like save_as(), but return bool whether file has changed on disk
- save(dir_, **kwargs)¶
- update(dir_, **kwargs)¶
- run(cli=False)¶
- class mini_buildd.files.Script(script_path)¶
Bases:
File
Load a complete script file as
File
(with automatic shebang recognition)
- class mini_buildd.files.ShellScript(name, description=None, snippet=None, comment='#', shebang=None, finalizer=None, placeholders=None)¶
Bases:
File
- banner(description)¶
- class mini_buildd.files.ShScript(*args, **kwargs)¶
Bases:
ShellScript
- class mini_buildd.files.BashScript(*args, **kwargs)¶
Bases:
ShellScript
- class mini_buildd.files.Dir(path=None, enumerate_file_names=-1)¶
Bases:
OrderedDict
- add(file_)¶
- save(path=None)¶
- update([E, ]**F) None. Update D from dict/iterable E and F. ¶
If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]