def genHellos(outFilename, overWrite = False, python = False):
    if python:
        if not outFilename.endswith(".py"):
            outFilename = outFilename + ".py"
        if os.path.exists(outFilename) and not overWrite:
            raise Exception(CT.boldRed("File ") + CT.boldBlack(outFilename) + CT.boldRed(" already exists, use --overWrite to over write it"))
        genPyHello(outFilename)
        #rwx to user and group, r-x to everyone
        fd = os.open( outFilename, os.O_RDONLY )
        os.fchmod( fd, 0775)
        os.close( fd )
        print (CT.boldGreen("Now run"))
        print ("./" + outFilename + " ")
        print (CT.boldGreen("or"))
        print ("./" + outFilename + " --name Nick")
    else:
        if not outFilename.endswith(".cpp"):
            outFilename = outFilename + ".cpp"
        if os.path.exists(outFilename) and not overWrite:
            raise Exception("File " + outFilename + " already exists, use --overWrite to over write it")
        genCppHello(outFilename)
        print (CT.boldGreen("Now run"))
        print ("g++ -std=c++11 " + outFilename + " -o hello #-std=c++11 needed for cstdint include in libstdc++")
        print ("./hello")
        print (CT.boldGreen("or run"))
        #mac
        if Utils.isMac():
            print ("clang++ " + outFilename + " -o hello")
        else:
            print ("clang++-3.6 -std=c++11 " + outFilename + " -o hello #-std=c++11 needed for cstdint include in libstdc++")
        print ("./hello")
예제 #2
0
def genHellos(outFilename, overWrite = False, python = False):
    if python:
        if not outFilename.endswith(".py"):
            outFilename = outFilename + ".py"
        if os.path.exists(outFilename) and not overWrite:
            raise Exception(CT.boldRed("File ") + CT.boldBlack(outFilename) + CT.boldRed(" already exists, use --overWrite to over write it"))
        genPyHello(outFilename)
        #rwx to user and group, r-x to everyone
        fd = os.open( outFilename, os.O_RDONLY )
        os.fchmod( fd, 0o775)
        os.close( fd )
        print((CT.boldGreen("Now run")))
        print(("./" + outFilename + " "))
        print((CT.boldGreen("or")))
        print(("./" + outFilename + " --name Nick"))
    else:
        if not outFilename.endswith(".cpp"):
            outFilename = outFilename + ".cpp"
        if os.path.exists(outFilename) and not overWrite:
            raise Exception("File " + outFilename + " already exists, use --overWrite to over write it")
        genCppHello(outFilename)
        print((CT.boldGreen("Now run")))
        print(("g++ -std=c++11 " + outFilename + " -o hello #-std=c++11 needed for cstdint include in libstdc++"))
        print ("./hello")
        print((CT.boldGreen("or run")))
        #mac
        if Utils.isMac():
            print(("clang++ " + outFilename + " -o hello"))
        else:
            print(("clang++-3.6 -std=c++11 " + outFilename + " -o hello #-std=c++11 needed for cstdint include in libstdc++"))
        print ("./hello")
예제 #3
0
 def get_file_if_size_diff(url, d):
     '''only download the file if it's needed, not completely fail proof since it is 
     just a size check but fairly likely not to be the same for a difference '''
     fn = url.split('/')[-1]
     out_fnp = os.path.join(d, fn)
     net_file_size = int(urllib.urlopen(url).info()['Content-Length'])
     if os.path.exists(out_fnp):
         fn_size = os.path.getsize(out_fnp)
         if fn_size == net_file_size:
             print "skipping download of", CT.boldGreen(fn)
             return out_fnp
         else:
             print "files sizes differed:", "on disk:", fn_size, "from net:", net_file_size
     print "retrieving", CT.boldGreen(fn), "from", CT.boldBlue(url)
     urllib.urlretrieve(url, out_fnp)
     return out_fnp
예제 #4
0
 def get_file_if_size_diff(url, d):
     """only download the file if it's needed, not completely fail proof since it is 
     just a size check but fairly likely not to be the same for a difference """
     fn = url.split("/")[-1]
     out_fnp = os.path.join(d, fn)
     net_file_size = int(urllib.urlopen(url).info()["Content-Length"])
     if os.path.exists(out_fnp):
         fn_size = os.path.getsize(out_fnp)
         if fn_size == net_file_size:
             print "skipping download of", CT.boldGreen(fn)
             return out_fnp
         else:
             print "files sizes differed:", "on disk:", fn_size, "from net:", net_file_size
     print "retrieving", CT.boldGreen(fn), "from", CT.boldBlue(url)
     urllib.urlretrieve(url, out_fnp)
     return out_fnp
예제 #5
0
 def copyMakefile(self, distDir, overWrite=False):
     distDir = os.path.join(self.projectDir, distDir)
     if not os.path.exists(distDir):
         print(CT.boldGreen(distDir) + CT.boldRed(" doesn't exist skipping"))
         return
     if os.path.exists(os.path.join(distDir, "Makefile")) and not overWrite:
         raise Exception("Error, file " + os.path.join(distDir, "Makefile") + " already exist, use --overWrite overwrite Makefile")
     shutil.copy(os.path.join(self.setupFrom, "scripts/cppMakefiles/Makefile"), os.path.join(distDir, "Makefile"))
예제 #6
0
 def copySetUp(self, distDir, overWrite=False):
     if not os.path.exists(distDir):
         print(CT.boldGreen(distDir) + CT.boldRed(" doesn't exist skipping"))
         return
     if os.path.exists(os.path.join(distDir, "setup.py")) and not overWrite:
         raise Exception("Error, file " + os.path.join(distDir, "setup.py") + " already exist, use --overWrite overwrite setup.py")
     shutil.copy(os.path.join(self.setupFrom, "setup.py"), os.path.join(distDir, "setup.py"))    
     self.copyDir(os.path.join(self.setupFrom ,"scripts"), os.path.join(distDir,"scripts"), overWrite)
예제 #7
0
 def copySetUp(self, distDir, overWrite=False):
     if not os.path.exists(distDir):
         print(
             CT.boldGreen(distDir) + CT.boldRed(" doesn't exist skipping"))
         return
     if os.path.exists(os.path.join(distDir, "setup.py")) and not overWrite:
         raise Exception(
             "Error, file " + os.path.join(distDir, "setup.py") +
             " already exist, use --overWrite overwrite setup.py")
     shutil.copy(os.path.join(self.setupFrom, "setup.py"),
                 os.path.join(distDir, "setup.py"))
     self.copyDir(os.path.join(self.setupFrom, "scripts"),
                  os.path.join(distDir, "scripts"), overWrite)
예제 #8
0
 def __setup(self, name, builder_f):
     if os.path.exists(self.__path(name).local_dir):
         print name, CT.boldGreen("found at ") + CT.boldBlack(self.__path(name).local_dir)
     else:
         print name, CT.boldRed("NOT"), "found; building..."
         try:
             builder_f()
             self.installed.append(name)
         except Exception as inst:
             print type(inst)
             print inst 
             print "failed to install " + name
             self.failedInstall.append(name)
예제 #9
0
 def copyMakefile(self, distDir, overWrite=False):
     distDir = os.path.join(self.projectDir, distDir)
     if not os.path.exists(distDir):
         print(
             CT.boldGreen(distDir) + CT.boldRed(" doesn't exist skipping"))
         return
     if os.path.exists(os.path.join(distDir, "Makefile")) and not overWrite:
         raise Exception(
             "Error, file " + os.path.join(distDir, "Makefile") +
             " already exist, use --overWrite overwrite Makefile")
     shutil.copy(
         os.path.join(self.setupFrom, "scripts/cppMakefiles/Makefile"),
         os.path.join(distDir, "Makefile"))
예제 #10
0
 def untar(fnp, d):
     """ un pack compressed file, guessing format based on extention """
     if fnp.endswith(".tar.gz"):
         tar = tarfile.open(fnp, "r:gz")
     elif fnp.endswith(".tgz"):
         tar = tarfile.open(fnp, "r:gz")
     elif fnp.endswith(".tar.bz2"):
         tar = tarfile.open(fnp, "r:bz2")
     elif fnp.endswith(".tar"):
         tar = tarfile.open(fnp, "r")
     else:
         raise Exception("invalid file? " + fnp)
     print "untarring", CT.boldGreen(fnp), "to", CT.boldBlue(d)
     tar.extractall(d)
     tar.close()
예제 #11
0
 def untar(fnp, d):
     ''' un pack compressed file, guessing format based on extention '''
     if fnp.endswith(".tar.gz"):
         tar = tarfile.open(fnp, "r:gz")
     elif fnp.endswith(".tgz"):
         tar = tarfile.open(fnp, "r:gz")
     elif fnp.endswith(".tar.bz2"):
         tar = tarfile.open(fnp, "r:bz2")
     elif fnp.endswith(".tar"):
         tar = tarfile.open(fnp, "r")
     else:
         raise Exception("invalid file? " + fnp)
     print "untarring", CT.boldGreen(fnp), "to", CT.boldBlue(d)
     tar.extractall(d)
     tar.close()
예제 #12
0
def parseForHeaders(args):
    headers = set()
    unknowns = []

    for arg in args:
        if arg in objToHeader:
            headers.add(objToHeader[arg])
        elif ("std::" + arg) in objToHeader:
            headers.add(objToHeader["std::" + arg])
        else:
            unknowns.append(arg)
    print(CT.boldRed("Unknowns:"))
    for u in unknowns:
        print(CT.boldBlack("unknown which header file contains"), CT.boldRed(u))

    if headers:
        print(CT.boldGreen("found headers:"))
        for h in sorted(headers):
            print(h)
예제 #13
0
    def setup(self):
        if self.args.forceUpdate:
            for set in self.setUpsNeeded.keys():
                if not set in self.setUps.keys():
                    print CT.boldBlack( "Unrecognized option ") + CT.boldRed(set)
                else:
                    self.rmDirsForLib(set)
                        
        for set in self.setUpsNeeded.keys():
            if not set in self.setUps.keys():
                print CT.boldBlack( "Unrecognized option ") + CT.boldRed(set)
            else:
                self.__setup(set, self.setUps[set])

        for p in self.installed:
            print p, CT.boldGreen("installed")

        for p in self.failedInstall:
            print  p, CT.boldRed("failed to install")
예제 #14
0
def parseForHeaders(args):
    headers = set()
    unknowns = []

    for arg in args:
        if arg in objToHeader:
            headers.add(objToHeader[arg])
        elif ("std::" + arg) in objToHeader:
            headers.add(objToHeader["std::" + arg])
        else:
            unknowns.append(arg)
    print(CT.boldRed("Unknowns:"))
    for u in unknowns:
        print(CT.boldBlack("unknown which header file contains"),
              CT.boldRed(u))

    if headers:
        print(CT.boldGreen("found headers:"))
        for h in sorted(headers):
            print(h)
예제 #15
0
 def mkdir(d):
     """mkdir if it doesn't already exist """
     if not os.path.exists(d):
         print CT.boldText("mkdir"), CT.boldGreen(d)
         os.makedirs(d)
예제 #16
0
 def mkdir(d):
     '''mkdir if it doesn't already exist '''
     if not os.path.exists(d):
         print CT.boldText("mkdir"), CT.boldGreen(d)
         os.makedirs(d)
예제 #17
0
 def run_in_dir(cmd, d):
     #print CT.boldBlack("here")
     cmd = "cd " + Utils.shellquote(d) + " && " + cmd + " && cd -"
     #print CT.boldBlack("newcmd")
     print CT.boldGreen(cmd)
     Utils.run(cmd)
예제 #18
0
 def run_in_dir(cmd, d):
     # print CT.boldBlack("here")
     cmd = "cd " + Utils.shellquote(d) + " && " + cmd + " && cd -"
     # print CT.boldBlack("newcmd")
     print CT.boldGreen(cmd)
     Utils.run(cmd)
예제 #19
0
 def mkdir(d):
     '''mkdir if it doesn't already exist '''
     if not os.path.exists(d):
         print(CT.boldText("mkdir"), CT.boldGreen(d))
         os.makedirs(d)