def __init__(self): tmt.EclipseProject.__init__( self, tmt.projectName(), description=DESCRIPTION, main='net.gnehzr.tnoodle.scrambles.Main', tests=['net.gnehzr.tnoodle.test.ScrambleTest'])
import tmt import subprocess from os.path import join, exists import shutil class Project(tmt.EclipseProject): def configure(self): tmt.EclipseProject.configure(self) tmt.WinstoneServer.addPlugin(self) Project(tmt.projectName(), description="A generic competition scramble generator interface.")
import tmt class Project(tmt.TmtProject): def getDependencies(self): return [tmt.TmtProject.projects['twisty.js']] def getClasspathEntities(self, *args, **keyargs): # This is here just to make jracer's getClasspathEntities happy return set() def compile(self): pass def clean(self): pass def check(self): pass Project(tmt.projectName(), description= "A javascript game framework created with multiplayer racing in mind")
import tmt class Project(tmt.EclipseProject): def configure(self): tmt.EclipseProject.configure(self) tmt.WinstoneServer.addPlugin(self) Project(tmt.projectName(), description="A Rubik's Cube timer.")
import tmt import subprocess from os.path import join, exists class Project(tmt.EclipseProject): def configure(self): tmt.EclipseProject.configure(self) tmt.WinstoneServer.addPlugin(self) Project(tmt.projectName(), description="A 100% java implementation of php.")
import tmt import subprocess from os.path import join, exists class Project(tmt.EclipseProject): def configure(self): tmt.EclipseProject.configure(self) self.main = "cs.threephase.Main" self.threephase_tables = 'tpr_tables' self.CACHED_THREEPHASE_TABLES = join(self.name, 'CACHED_THREEPHASE_TABLES_DELETE_TO_RECREATE') Project(tmt.projectName(), description="A copy of Chen Shuang's 4x4 scrambler.")
def __init__(self): tmt.EclipseProject.__init__( self, tmt.projectName(), description=DESCRIPTION)
# The problem is that even after compiling, webroot/WEB-INF/lib/ and # webroot/WEB-INF/classes/ are still unpopulated, so simply jarring it up # isn't good enough. Here we populate classes/ and lib/. To do so, we need # all of the things that webProject depends on, EXCEPT for winstone (ourself). deps = webProject.getRecursiveDependenciesTopoSorted(exclude=set([self])) webInf = join("tnoodle_resources", "webapps", "ROOT", "WEB-INF") libDir = join(webInf, "lib") classesDir = join(webInf, "classes") for project in deps: assert project is not self if hasattr(project, "jarFile"): arcPath = join(libDir, basename(project.jarFile)) jar.write(project.jarFile, arcPath) elif isinstance(project, tmt.EclipseProject): for dirpath, dirnames, filenames in os.walk(project.bin, followlinks=True): for name in filenames: if dirpath.startswith(join(project.bin, "tnoodle_resources")): destDir = "" else: destDir = classesDir path = join(dirpath, name) prefixLen = len(project.bin) if project.bin.endswith("/"): prefixLen += 1 arcPath = join(destDir, path[prefixLen+1:]) jar.write(path, arcPath) Project(tmt.projectName(), description="Tiny embeddable webserver that implements the java servlet spec.")
import tmt class Project(tmt.TmtProject): def getDependencies(self): return [ tmt.TmtProject.projects['twisty.js'] ] def getClasspathEntities(self, *args, **keyargs): # This is here just to make jracer's getClasspathEntities happy return set() def compile(self): pass def clean(self): pass def check(self): pass Project(tmt.projectName(), description="A javascript game framework created with multiplayer racing in mind")
import tmt DESCRIPTION = "A dead simple svg generation library written in pure Java, with no dependencies. This code runs on both desktop Java, Android, and compiles to Javascript with GWT." tmt.EclipseProject(tmt.projectName(), description=DESCRIPTION)
import tmt tmt.EclipseProject(tmt.projectName(), description="A Java library that parses a Stackmat plugged into an audio port.")
import tmt class Project(tmt.TmtProject): def getDependencies(self): return [] def compile(self): pass def clean(self): pass def check(self): pass Project(tmt.projectName(), description="Lucas Garron's Javascript puzzle simulator.")
def _chdir(self): oldDir = os.path.abspath('.') os.chdir(tmt.projectName()) return oldDir
def __init__(self): tmt.EclipseProject.__init__( self, tmt.projectName(), description=DESCRIPTION, main="net.gnehzr.tnoodle.scrambles.Main" )
import tmt import subprocess from os.path import join, exists import shutil class Project(tmt.EclipseProject): def configure(self): tmt.EclipseProject.configure(self) tmt.WinstoneServer.addPlugin(self) Project(tmt.projectName(), description="mootools js library")
def __init__(self): tmt.EclipseProject.__init__(self, tmt.projectName(), description=DESCRIPTION)
import tmt import subprocess from os.path import join, exists import shutil class Project(tmt.EclipseProject): def configure(self): tmt.EclipseProject.configure(self) tmt.WinstoneServer.addPlugin(self, needsDb=True) Project(tmt.projectName(), description="A very basic demo of a java servlet and a php page.")
import tmt tmt.EclipseProject(tmt.projectName(), description="Dumping ground for useful Java functions used by web servlets")
import tmt tmt.EclipseProject(tmt.projectName(), description="Dumping ground for useful Java functions used throughout tnoodle")
import tmt import subprocess from os.path import join, exists class Project(tmt.EclipseProject): def configure(self): tmt.EclipseProject.configure(self) self.twophase_tables = 'twophase_tables' """ Commented out because we don't bother generating the tables at compile time anymore. They're generated the first time you run tnoodle, and are saved to disk. def innerCompile(self, src, tempBin, bin): if src == self.srcResource: # build the pruning and transition tables for the two phase algorithm tablesPath = join(tempBin, self.twophase_tables) print "Generating %s" % tablesPath cp = self.getClasspathEntities() cp.add(tempBin) # getClasspathEntities() contains self.bin, which isn't up to date yet assert 0 == tmt.java( main="cs.min2phase.Tools", classpath=self.toClasspath(cp), args=[ tablesPath ]) print "Successfully generated %s!" % tablesPath """ Project(tmt.projectName(), description="Chen Shuang's (https://github.com/ChenShuang) awesome 3x3 scrambler built on top of Herbert Kociemba's Java library.")
import tmt import subprocess class Project(tmt.EclipseProject): def configure(self): tmt.EclipseProject.configure(self) tmt.WinstoneServer.addPlugin(self) self.nonJavaResourceDeps |= tmt.glob(self.src, '.*html$', relativeTo=self.src) Project(tmt.projectName(), description="A server plugin wrapper for scrambles that also draws pdfs.")
import tmt import subprocess from os.path import join, exists class Project(tmt.EclipseProject): def configure(self): tmt.EclipseProject.configure(self) self.main = 'cs.sq12phase.Search' def compile(self): tmt.EclipseProject.compile(self) Project(tmt.projectName(), description="A copy of Chen Shuang's square 1 two phase solver.")
import tmt class Project(tmt.EclipseProject): def configure(self): tmt.EclipseProject.configure(self) tmt.WinstoneServer.addPlugin(self) # I'd rather maintain a single TNoodle.jar binary that multiple different # jars with different subsets of what I consider TNoodle. self.fullName = "TNoodle" Project(tmt.projectName(), description="Special target for the WCA")
# Note that there's a symlink from the src_tnoodle_resources # directory to the generated stackmat-flash/bin/StackApplet.swf. # This allows people without the flex sdk installed to work on tnoodle. # Fortunately, we don't follow symlinks when evaluating whether # a project needs to be rebuilt, so this symlink hack doesn't # force infinite rebuilds if mxmlc is installed. if not tmt.args.skip_noflex_warning: realOutSwf = self.APPLET_FILENAME print """\n\nWARNING: It appears you do not have the flex sdk installed (specifically the mxmlc binary), which is needed to build stackmat-flash. I'm going to go ahead and use the version of %s from the git repository.""" % ( realOutSwf ) self.checkoutSwf(tempBin) else: # Wowow, you've gotta love it when you have such great tools asFile = join(src, 'StackApplet.as') if exists(asFile): assert self.mxmlcInstalled outSwf = self.APPLET_FILENAME retVal, stdout, stderr = tmt.runCmd([ 'mxmlc', '-benchmark=True', '-creator=tnoodle', '-static-link-runtime-shared-libraries=true', '-output=%s' % outSwf, asFile ], showStatus=True) assert retVal == 0 # Yikes. mxmlc doesn't seem to have any command line args to treat # warnings as errors. Look what they've made me do! assert len(stderr) == 0 # Neither of the two operations above update the timestamp of a file in self.bin. # We explicitly update timestamp of a file in self.bin so there aren't any issues where we try # to recompile this project when we don't need to. f = file(join(tempBin, ".timestamp"), 'w') f.write("%s" % time.time()) Project(tmt.projectName(), description="A flash applet that can interpret the sound of a stackmat plugged into your computer.")
import tmt from os.path import join class Project(tmt.EclipseProject): def configure(self): tmt.EclipseProject.configure(self) def compile(self): tmt.EclipseProject.compile(self) Project(tmt.projectName(), description="An easy to distribute and run single player version of noderacer.")
import os import os.path class Project(tmt.TmtProject): def configure(self): self.gradlew = "(cd %s; ./gradlew %%s)" % self.name def getDependencies(self): return [ tmt.TmtProject.projects['scrambles'] ] def runGradleTask(self, task): retVal = os.system(self.gradlew % task) assert retVal == 0 def compile(self): # Note that we skip signing here in order to prevent # travis ci issue. self.runGradleTask("assemble -x signArchives") def clean(self): self.runGradleTask("clean") def check(self): pass def publishToMavenCentral(self): self.runGradleTask("uploadArchives") self.runGradleTask("nexusStagingRelease") Project(tmt.projectName(), description="Android scrambling library")