def copyBaseFiles(path): print (text.copyingFiles) # Supports 64 bit and 32 bit, no arm yet (though should be an easy fix) if platform.architecture()[0] == "64bit": arch = "amd64" else: arch = "i386" version = getArg.getArg("-v") if version not in text.versions: version = "precise" print (text.usingVersion.format(version)) debCmd = "bash " + getRootDir.getRoot() + "/.coffer/debootstrap/debootstrap --arch=" + arch + " {} {}" os.system(debCmd.format(version, path)) # Debootstrap does not install a decent source.list, so we have to do it here with open(path + "/etc/apt/sources.list", 'wb') as f: f.write(urllib.urlopen("https://help.ubuntu.com/12.04/sample/sources.list").read()) # Then we have to add keys since we are using a new source list. templateUtils.executeCommand("gpg --keyserver keyserver.ubuntu.com --recv 3E5C1192") templateUtils.executeCommand("gpg --export --armor 3E5C1192 | sudo apt-key add -") templateUtils.executeCommand("apt-get update")
def rename(): if not isRoot.isRoot(): sys.exit(text.notRoot) root = getRootDir.getEnvsDir() name = getArg.getArg(0) newName = getArg.getArg(1) if not name or not newName: sys.exit(text.renameHelper) if not os.path.exists(root + name): sys.exit(text.envDoesntExist) if os.path.exists(root + newName): sys.exit(text.nameAlreadyExists) remove.unmountAll(root + name) renameDir(root + name, root + newName) sys.exit(text.renameSuccessful)
def clone(): if len(sys.argv) < 4: sys.exit(text.cloneHelper) if not isRoot.isRoot(): sys.exit(text.notRoot) name = getArg.getArg(0) clone = getArg.getArg(1) path = getRootDir.getEnvsDir() + name clonePath = getRootDir.getEnvsDir() + clone if not envExists(path): sys.exit(text.envDoesntExistVar.format(name)) if envExists(clonePath): sys.exit(text.envAlreadyExistsVar.format(clone)) remove.unmountAll(path) copyEnv(path, clonePath) print(text.cloned)
def package(): rootDir = getRootDir.getEnvsDir() env = getArg.getArg(0) if not env: sys.exit(text.packageHelper) if not isRoot.isRoot(): sys.exit(text.notRoot) if not remove.checkIfExists(rootDir + env): sys.exit(text.envDoesntExist) remove.unmountAll(rootDir + env) compress(rootDir + env, env) print(text.packaged)
def remove(): rootDir = getRootDir.getEnvsDir() name = getArg.getArg(0) if not name: sys.exit(text.removeHelper) if not isRoot.isRoot(): sys.exit(text.notRoot) if not checkIfExists(rootDir + name): sys.exit(text.envDoesntExist) unmountAll(rootDir + name) removeDir(rootDir + name) print (text.removed)
def create(): root = getRootDir.getEnvsDir() template = getFlag.getFlag("-t") name = getArg.getArg(0) if not name: sys.exit(text.createHelper) if not isRoot.isRoot(): sys.exit(text.notRoot) path = root + name if not createDir(path): sys.exit(text.envAlreadyExists) copyBaseFiles(path) if template: executeTemplate(template) print(text.envCreated)
def create(): root = getRootDir.getEnvsDir() template = getFlag.getFlag("-t") name = getArg.getArg(0) if not name: sys.exit(text.createHelper) if not isRoot.isRoot(): sys.exit(text.notRoot) path = root + name if not createDir(path): sys.exit(text.envAlreadyExists) copyBaseFiles(path) if template: executeTemplate(template) print (text.envCreated)
def create(): root = getRootDir.getRoot() + "/.coffer/envs" template = getArg.getArg("-t") if len(sys.argv) < 3: sys.exit(text.createHelper) if not isRoot.isRoot(): sys.exit(text.notRoot) name = sys.argv[2] path = root + "/" + name if not createDir(path): sys.exit(text.envAlreadyExists) copyBaseFiles(path) if template: executeTemplate(template) print (text.envCreated)
def enter(): if not isRoot.isRoot(): sys.exit(text.notRoot) rootDir = getRootDir.getRoot() + "/.coffer/envs" if len(sys.argv) < 3: sys.exit(text.enterHelper) name = sys.argv[2] path = rootDir + "/" + name if not os.path.exists(path): sys.exit(text.envDoesntExist) enterChroot(path) command = getArg.getArg("-c") if command: executeCommand(command=command) else: executeCommand()
def unpackage(): rootDir = getRootDir.getEnvsDir() compressed = getArg.getArg(0) if not compressed: sys.exit(text.unpackageHelper) if not isRoot.isRoot(): sys.exit(text.notRoot) if not remove.checkIfExists(compressed): sys.exit(text.packageDoesntExist) env = compressed.split("/")[-1].split(".")[0] if remove.checkIfExists(rootDir + env): sys.exit(text.envAlreadyExists) decompress(compressed, rootDir + env) print(text.unpackagedSuccessful)
def unpackage(): rootDir = getRootDir.getEnvsDir() compressed = getArg.getArg(0) if not compressed: sys.exit(text.unpackageHelper) if not isRoot.isRoot(): sys.exit(text.notRoot) if not remove.checkIfExists(compressed): sys.exit(text.packageDoesntExist) env = compressed.split("/")[-1].split(".")[0] if remove.checkIfExists(rootDir + env): sys.exit(text.envAlreadyExists) decompress(compressed, rootDir + env) print (text.unpackagedSuccessful)
def enter(): if not isRoot.isRoot(): sys.exit(text.notRoot) rootDir = getRootDir.getEnvsDir() name = getArg.getArg(0) if not name: sys.exit(text.enterHelper) template = getFlag.getFlag("-t") if template: create.executeTemplate(template) path = rootDir + name if not os.path.exists(path): sys.exit(text.envDoesntExist) checkMount(path) enterChroot(path) command = getFlag.getFlag("-c") if command: executeCommand(command=command) else: executeCommand()