Search code examples
tclpackage-managersteacup

Can I use Teacup to manage custom offline Tcl code


I'm trying to figure out a good way for my company to have a local repository/package manager (something a little more user friendly than git). I like Teacup and we are using ActiveState Tcl anyways (Tcl 8.5, we have legacy systems using this version).

Can I use Teacup to make my own offline package manager repo? Sort of like how you can do that with Anaconda in Python. It has to be totally offline but I want to be able to upload packages to it when I make them and let Teacup handle the installation of them for other users in my company.

I've read through this page a little bit but it is missing some content.


Solution

  • You are looking for the server-side component to the "teaparty": teapot as the server providing for the teacup client:

    https://wiki.tcl-lang.org/page/Teapot

    While there is a dedicated teapot (server) implementation available from ActiveState, the client/ server protocol is straight forward: It is about generating markup (HTML) resources delivered via HTTP (containing table DOM structures) and processed by the teacup client. As always, these resources can be generated statically or dynamically, or anything inbetween.

    Watch the examples at:

    http://teapot.rkeene.org/index.html

    Better:

    view-source:http://teapot.rkeene.org/index.html

    Assuming your Tcl projects are hosted using some SCM repo, you may provide some repository (CD, pipeline) action to produce a static resource structure served by a HTTP server of your choice? The original teacup client can be used against this resource collection.