Esempio n. 1
0
File: sym.py Progetto: bapcyk/pybase
    def clone(name1, name2):
        """Clone symbol with name1 to name2. Doesn't chech that name1 is
        consistent symbol directory
        """
        if not SymModule._ready:
            raise ValueError("not mounted")

        symdir1 = SymModule.DIR.hpath(name1)
        symdir2 = SymModule.DIR.hpath(name2)

        if not path.exists(symdir1):
            raise Exception("Source symbol does not exist")
        if path.exists(symdir2):
            raise Exception("Destination symbol already exists")

        # copy unmodified files
        shutil.copytree(symdir1, symdir2)
        # modify descr-file
        descr2 = path.join(symdir2, SymModule.DESCR)
        dc = DotCfg()
        with codecs.open(descr2, "r", encoding="utf8") as f:
            dc.parse(f)
            par = dc.get(u"date")
            if par:
                par.value = time.strftime("%Y-%m-%d %H:%M:%S")
            par = dc.get(u"author")
            if par:
                par.value = os.getenv("USER", os.getenv("USERNAME", "Unknown"))
        dc.flush()