Begin the packager

I do not know how this is going to end. I don’t know if I should have even started it. There may be brick walls I don’t to surmount. Then again, self packaging is a really cool features of Shoes and I think it too damn clever to not try to make it work again.

early-packager

That’s the new packager screen. Compared to the old screen, it’s really minimal. No options for ‘download if needed’ or video/no-video. No options at all. No checkboxes or radio buttons. Push the button you want. It downloads, unpacks, inserts your app, repacks and you get a something you can upload for others to download. Push another button and wait if you want something additional. That’s the good intentions.

It is not finished, or even working yet. With the changes I’ve made to Shoes 3.2, it may not ever work. It certainly won’t work the way some folks remember or want. Some plaforms download the whole mess and some will download it when the ultimate end user runs their app.

There’s some new infrastucture around those buttons. First, they are created from the execution of a cgi script (that just lists the Shoes available for download) Look at the OSX button. Hey, it’s 3.2.11 and the others are 3.2.10! There is an osx 3.2.10 file available but you only get the latest. Magic Cloud computing! Depending on the details with Shoes 4, it may be possible to offer that as an option. From what I’ve read but don’t really remember it might be very easy. Of course that wouldn’t work if you’re Shoes app depends on some binary gem that Shoes 4 can’t handle. Why let a few pesky facts get in the way of a dream?

Until the facts puncture the dream balloon, I’m going to try.

[Update]
I forget to mention, it’s not deeply tied to my website. I added an option to Cobbler so any one can enter different urls for the cgi script and download directories. It just defaults to my website but any website that can run the following script would be usable.

#!/usr/bin/ruby
lns = []
Dir.glob('../shoes/*') do |fp|
tm = File.mtime(fp).to_i
sz = File.size(fp).to_i/1048576
fn = File.basename(fp)
lns << "#{sz} #{tm} #{fn}n" end require 'cgi' cgi = CGI.new cgi.out{ lns }

Unless I change things.Which is likely

Leave a Reply

Your email address will not be published. Required fields are marked *