[TxMt] Tester wanted for the new bundle "GetBundles"

Hans-Joerg Bibiko bibiko at eva.mpg.de
Thu Jul 17 14:05:45 UTC 2008


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









More information about the textmate mailing list