Hi,
I just uploaded the bundle "GetBundles" to the review trunk.
It is the first try to provide an easy and hopefully fast GUI to install additional bundles hosted on the svn repositories Mactomates Bundles, Macromates Review, and the git repository at github.com.
There is a tiny screencast: http://www.bibiko.de/TM_GetBundles.mov (5MB)
It is implemented as an async DIALOG window showing a table of all found bundles in the three repositories as 'Repository' (B := Bundles, R := Review, G ;= GitHub), 'name', 'description'.
If one invokes that window firstly it looks for the all bundles at these repositories. If it finds a bundle description in the cache file for a given bundle it displays that description; if not it shows "not yet downloaded". At the bottom you will see how many bundle descriptions are missing. For the github it always downloads the descriptions, meaning these descriptions aren't cached. If there are some missing one can press the "update" button. The table and the cache will be updated.
The GUI provides a search field. One can search for names and/or bundle descriptions. The search can be restricted to a given repository, and in addition there is also the chance to search by using a regexp à la ".*rtf.*[cd]op.*".
One can select one or more bundles (from different repositories) and press "Install Bundles" (one also can double-click). Furthermore one can select the installation target Prinstine Copy, ~ Bundles, App Bundle, etc. or 'user defined'. If 'user defined' was chosen one can select a folder.
The script will install a bundle by using svn (bundle intern or TM_SVN) or 'git clone' (git or TM_GIT). If git is not installed it will download the bundle as zip file from github and installs that one.
There is the chance to show the installation log file. Next there is an 'Advanced' button. It opens a drawer with up to now one button "Update TextMate's Support Lib" which installs the latest Support/lib items.
If a folder already exists the script will ask you what to do. You can cancel or replace the old one. If one chooses 'replace' the script will backup the old folder as OLDFOLDERNAME + a time stamp for safety reasons.
After installing a Reload Bundles will be done.
The entire script works with DIALOG1 or, if installed, with DIALOG2
If someone wants to test it you can check out it from the review repository and just download it via http://email.eva.mpg.de/~bibiko/downloads/textmate/GetBundles.tmbundle.zip
Please, for the first time you should select a 'user defined' folder as installation target.
Furthermore I would be pleased if a Ruby expert can go through the code. I'm not the Ruby specialist ;)
I tried to get rid of all circumstances, esp. for errors. All relevant commands are wrapped into timeout and rescue blocks. But maybe I forgot something ;)
The only way to close that window is to press the Cancel button or simply ESC. OPTION+W won't work. The script makes usage of some threads, thus these threads should be aborted safely.
All errors, installation commands will be written into a log file located in the bundle's lib path. This log file will be erased each time if one invokes "GetBundles".
I tested it on Tiger 10.4.11 and Leopard 10.5.4 on a ppc Mac with DIALOG1 and 2.
I didn't use the command line tool 'textmate' and 'thor'. By my opinion it is 'only' command line tool.
Any comments? Does the script run? What is unclear? What is ugly? What was misspelled? Are there any fatal errors or freezing stuff? What else can be done?
If a fatal error occurred and the window freezes at the screen, you can destroy that window by entering: "$DIALOG" - l TOKEN or "$DIALOG" window close TOKEN for DIALOG2 The token can be found at the beginning of the log file. Please also check if there are still running a Ruby, git, svn, tm_dialog(2) process in the Activity Monitor.
Thanks,
--Hans
This looks absolutely brilliant! I'll check it out tomorrow and see how well I can pick it apart ;)
Would you want us to submit updates to it directly or should we talk to you first?
First thoughts from the screencast: Totally awesome! Where can I get that keystroke showing thing? The drawer should open from the bottom. The logs should be stored in the standard logs folder ~/Library/Logs Your screencast is a bit washed out and everything seems very white. The layout of the window could use a bit of cleanup. (I'd be happy to submit alternate layout ideas) 'user defined' Installation Target should default to the ~/Downloads folder or the Desktop
Have you seen the Firefox 3 add-on window? I think that has a wonderful UI, but maybe not ideal for this. Thoughts?
(assuming it actually works ;) This is a HUGE step forward for the TextMate community!
On 18.07.2008, at 03:54, Thomas Aylott / subtleGradient wrote:
Would you want us to submit updates to it directly or should we talk to you first?
If you have access to it, please go ahead. I'll see your commits.
First thoughts from the screencast: Totally awesome! Where can I get that keystroke showing thing?
I'm using KeyCastr.app http://www.macupdate.com/download.php/23072/keycastr_0.7.3.dmg
The drawer should open from the bottom.
Which drawer?
The logs should be stored in the standard logs folder ~/Library/Logs
Yes, I agree. But the log will be replace any time you invoke that GetBundles command. That's why I thought it would fit better to store it within the bundle.
Your screencast is a bit washed out and everything seems very white.
White? Do yo mean the background? It was only to hide stuff at my desktop ;)
The layout of the window could use a bit of cleanup. (I'd be happy to submit alternate layout ideas)
Go ahead ;)
'user defined' Installation Target should default to the ~/Downloads folder or the Desktop
Yes, this a good point. One could add two items to the installation target pop down menu: Users Desktop and Users Download
This would mean one can avoid the File Chooser ;)
Have you seen the Firefox 3 add-on window? I think that has a wonderful UI, but maybe not ideal for this. Thoughts?
Well, this is nice. I tried to use a NSOutLineView to show the repositories in a tree- like structure. That worked but I wasn't able to implement a live search to that tree. That's why I went back to use tables instead. But one could build a GUI à la Firefox Add-in, meaning one has at the top buttons or a toolbar with: All repositories, Macromates Bundles, Macromates Review, GitHub
If one clicks at a button the script would replace the table content accordingly.
In addition to that one could also add buttons like: Themes, Plugins, etc.
(assuming it actually works ;) This is a HUGE step forward for the TextMate community!
Hopefully, if it works stable ;)
On 18.07.2008, at 07:46, Michael Sheets wrote:
Just doing a quick glance over the bundle, I guess it's nice to support Tiger but is worth adding the 4MB svn executable to do so? Would make it smaller and avoid any versions issues to leave it out.
This is a good point. But you cannot expect that each user has svn installed. I looked for a way to install a bundle without using svn but I only found the way by downloading each single file separately. github provides a tarball or zipball but the svn repositories don't. Or is there a more tiny svn client available for free on the market?
Cheers,
--Hans
On Jul 18, 2008, at 2:49 AM, Hans-Jörg Bibiko wrote:
This is a good point. But you cannot expect that each user has svn installed. I looked for a way to install a bundle without using svn but I only found the way by downloading each single file separately. github provides a tarball or zipball but the svn repositories don't. Or is there a more tiny svn client available for free on the market?
Yes but Leopard comes with svn standard, so your only leaving behind the few that still have Tiger _and_ havn't installed subversion.
On 18 Jul 2008, at 15:35, Michael Sheets wrote:
On Jul 18, 2008, at 2:49 AM, Hans-Jörg Bibiko wrote:
This is a good point. But you cannot expect that each user has svn installed. I looked for a way to install a bundle without using svn but I only found the way by downloading each single file separately. github provides a tarball or zipball but the svn repositories don't. Or is there a more tiny svn client available for free on the market?
Yes but Leopard comes with svn standard, so your only leaving behind the few that still have Tiger _and_ havn't installed subversion.
This I didn't know.
Meanwhile I uploaded a new GUI approach to the review trunk:
By doing so the search was simplified enormously ;)
The download path http://email.eva.mpg.de/~bibiko/downloads/textmate/GetBundles.tmbundle.zip is still available.
Fine-tuning and the Installation target's stuff will come a bit later.
--Hans
On 18 Jul 2008, at 15:45, Michael Sheets wrote:
On Jul 18, 2008, at 8:40 AM, Hans-Joerg Bibiko wrote:
Meanwhile I uploaded a new GUI approach to the review trunk: <TextMateScreenSnapz001.png>
You've got the Install & Cancel buttons backwards. :)
You mean Cancel should be located right of the Install button?
On 18 Jul 2008, at 15:35, Michael Sheets wrote:
Yes but Leopard comes with svn standard, so your only leaving behind the few that still have Tiger _and_ havn't installed subversion.
How about this: I will delete the svn client from the bundle. If the user chooses a bundle from a svn repository and the script couldn't find a svn client installed at the local machine it will ask the user 1) If svn is installed set TM_SVN accordingly 2) Install svn from http://www.collab.net/downloads/community/ 3) Download the svn client from any place in the macromates trunk into the GetBundles folder
3) would be for those users who don't want to work with svn but they want to have access to TM's bundles.
But is there no option to set up the macromates svn repository to generate a zip out of chosen tmbundle like github it does?
--Hans
The workings are solid but the GUI doesn't feel very mac like, would be very pleased if some Interface Builder genius could make it feel more at home on my desktop.
On 18 Jul 2008, at 15:11PM, Hans-Joerg Bibiko wrote:
On 18 Jul 2008, at 15:45, Michael Sheets wrote:
On Jul 18, 2008, at 8:40 AM, Hans-Joerg Bibiko wrote:
Meanwhile I uploaded a new GUI approach to the review trunk: <TextMateScreenSnapz001.png>
You've got the Install & Cancel buttons backwards. :)
You mean Cancel should be located right of the Install button?
On 18 Jul 2008, at 15:35, Michael Sheets wrote:
Yes but Leopard comes with svn standard, so your only leaving behind the few that still have Tiger _and_ havn't installed subversion.
How about this: I will delete the svn client from the bundle. If the user chooses a bundle from a svn repository and the script couldn't find a svn client installed at the local machine it will ask the user
- If svn is installed set TM_SVN accordingly
- Install svn from http://www.collab.net/downloads/community/
- Download the svn client from any place in the macromates trunk into
the GetBundles folder
- would be for those users who don't want to work with svn but they
want to have access to TM's bundles.
But is there no option to set up the macromates svn repository to generate a zip out of chosen tmbundle like github it does?
--Hans
textmate mailing list textmate@lists.macromates.com http://lists.macromates.com/listinfo/textmate
On 18.07.2008, at 22:27, James Hicks wrote:
The workings are solid but the GUI doesn't feel very mac like, would be very pleased if some Interface Builder genius could make it feel more at home on my desktop.
Yes. The next I blevieve is that we need two different GUIs for Tiger and for Leopard. To use a textured window in Leipard is fine, but under Tiger it looks ugly. Together with the issue that Leopard comes with svn installed this leads to a question: Should we separate the bundle GetBundles into 'GetBundles' and 'GetBundles (Tiger)'?
--Hans
How about this GUI suggestion? Here's it for Tiger:
It's in the review repository as well as zip available. I also fixed some tiny issues. The bundle list is now sorted alphabetically by name instead by repository.
--Hans
On Jul 20, 2008, at 10:53 AM, Hans-Jörg Bibiko wrote:
How about this GUI suggestion? Here's it for Tiger:
<gb.png>
It's in the review repository as well as zip available. I also fixed some tiny issues. The bundle list is now sorted alphabetically by name instead by repository.
--Hans
Wow! That looks a million times better.
Here's my further refinement of your idea: http://tripledoubleyou.subtlegradient.com/textmate/Mockups/GetBundles%20Revi... Download the nib: http://tripledoubleyou.subtlegradient.com/textmate/Mockups/GetBundles%20Revi...
A few more suggestions though… ;) Put the gear menu at the bottom. Make the "installation target" an advanced option. Put all the advanced stuff in the gear menu as just menus and submenus. EG:
GEAR > Update Descriptions Show Activity Log -- Installation Target > More Info (should take you to a thing with more information about what each installation target choice means) -- Pristine User Bundles System Bundles -- Advanced > Advanced Option 1 Advanced Option 2 Advanced Option 3
I don't know how to do that part, so I leave that to you :D
This is really starting to rock!
— thomas Aylott @ subtleGradient
On 20.07.2008, at 18:39, Thomas Aylott / subtleGradient wrote:
A few more suggestions though… ;) Put the gear menu at the bottom. Make the "installation target" an advanced option. Put all the advanced stuff in the gear menu as just menus and submenus. EG:
GEAR > Update Descriptions Show Activity Log -- Installation Target > More Info (should take you to a thing with more information about what each installation target choice means) -- Pristine User Bundles System Bundles -- Advanced > Advanced Option 1 Advanced Option 2 Advanced Option 3
I don't know how to do that part, so I leave that to you :D
I just committed your refinements to the svn repository.
To handle that kind of a gear menu in a NIB controlled by TM is bit tricky, but I'll see what's possible ;) (That's why I'm using a drawer) And of course, to put the installation target to the advanced stuff is completely right.
--Hans
On Jul 17, 2008, at 9:05 AM, Hans-Joerg Bibiko wrote:
I just uploaded the bundle "GetBundles" to the review trunk.
Just doing a quick glance over the bundle, I guess it's nice to support Tiger but is worth adding the 4MB svn executable to do so? Would make it smaller and avoid any versions issues to leave it out.