Quarks


A Quark is a package of SC classes, helpfiles, C++ source for UGens and other SC code


The Quarks subversion repository is hosted at 


https://svn.sourceforge.net/svnroot/quarks

Quarks.repos.url



Quarks are downloaded onto your local machine in this folder:


{Application Support Directory}/quarks

Quarks.local.path




They are installed into your Extensions folder via the Quarks class which simply adds/removes symlinks.  

see [Using-Extensions]



You may use standard SVN tools within Quarks.local.path to work with Quarks packages.  


The Quarks class interface mirrors the svn commands with the correct paths  inserted.


It is easiest to just check out all available quarks:


Quarks.checkoutAll


// post those check out

Quarks.checkedOut



Quarks.install("testquark")


// recompile your library now

TestQuark.sayHello


Quarks.listInstalled


Quarks.uninstall("testquark")


// recompile your library now


// this returns quark objects for those installed

Quarks.installed


// quark objects for each one in repository that you could checkout

Quarks.repos.quarks


// quark objects that you could install

Quarks.local.quarks



To add your own quarks simply place the folder into local quarks/ 

and 

svn add quarkname

place a quarkname.quark file into the DIRECTORY

svn add DIRECTORY/quarkname.quark


and


svn commit



Check status of your working copy:


Quarks.status


// update all

Quarks.update


// update specific

Quarks.update("testquark")


// this would add the folder but would not add the DIRECTORY entry

/*

  Quarks.add("somethingnew");

*/





Not checking out all Quarks


At a future time when the universe is populated by billions of quarks you may wish to not clutter your local.


In the {Application Support Directory}/quarks/DIRECTORY folder there is a quark specification file for each Quark named quarkname.quark


This is an sc code file containing a dictionary specifying name, version number and relative path.


You may check out only quarks and quarks/DIRECTORY


Quarks.repos.checkDir


This will post the command to checkout quarks non-recursively and then to checkout quarks/DIRECTORY


You want to do:

 svn co -N url path


to non-recursively checkout only the top level quarks folder, and then check out individual



// update DIRECTORY

Quarks.updateDirectory


// list all quarks in the repository

Quarks.repos.quarks


// check one just out

Quarks.checkout("test")


Quarks.update("test")


Quarks.status("test")


Quarks.checkedOut


Quarks.installed.postln