Example #1
0
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")
Example #2
0
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)
Example #3
0
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)
Example #4
0
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)
Example #5
0
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)
Example #6
0
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)
Example #7
0
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)
Example #8
0
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)
Example #9
0
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)
Example #10
0
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)
Example #11
0
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()
Example #12
0
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)
Example #13
0
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)
Example #14
0
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()
Example #15
0
File: enter.py Project: kant/Coffer
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()