Translations

Management

KB20: Using Ketarin to keep setup packages up-to-date

This documentation is outdated. Check the new Ketarin wiki for updated information.

Ketarin is a small application which automatically updates setup packages. As opposed to other tools, Ketarin is not meant to keep your system up-to-date, but rather to maintain a compilation of all important setup packages which can then be burned to disc or put on a USB stick.

Example 1: Monitor CDBurnerXP updates

If a sofware package, like CDBurnerXP, is always downloadable from a fixed URL which automatically points to the latest version, it's rather simple.

Add a new application, enter a name and enter the URL. CDBurnerXP can always be downloaded from http://cdburnerxp.se/downloadsetup.exe, so this is what we are going to use in this example. Since the downloaded file name actually varies (it includes the version number), save it to a folder so that this file name is used instead of a fixed one. You probably also want to delete previously downloaded files, otherwise you'd keep an archive of *all* versions of CDBurnerXP.

You can also use a PAD fileURL as download URL (for example http://cdburnerxp.se/rss/padfile.xml). Ketarin will then automatically extract the actual download URL from the PAD file data. Make sure, that the PAD file is kept up-to-date by the author though.

Example 2: Monitor a package from filehippo.com

FileHippo is a frequently updated website which lists all kinds of software packages. It also provides a download opportunity. Ketarin can make use of this information.

Let's use SmartFTP in this example. As in example 1, add a new application and enter a name. Instead of an URL, however, copy and paste the URL of SmartFTP on filehippo.com (http://www.filehippo.com/download_smartftp/) into the FileHippo ID text field. It will automatically extract the corresponding ID from it. Since the name of the downloaded file can also vary in this case, choose a directory as location.

Example 3: Monitor Firefox

Using FileHippo is quite convenient, however, they only list English language software packages. So if you want to, let's say, monitor the German version of Firefox you can't use it. Also, there is no fixed direct download URL available for Firefox.

So what do we do? First of all, let's download the wanted version of Firefox from http://www.mozilla.com/en-US/firefox/all.html. Once the download has started, determine the location you are downloading from. Depending on the browser you are using, you can possibly rightclick on the active download and choose “Show source URL” or “Copy source URL to clipboard”. The actual URL could be this one for example:

Now we only have to define where to get {version} from. To do this, click on the Variables button next to the URL.

Press Enter or click the +-Button. Enter “version” (without quotes) as name. For “Contents of URL” enter http://www.mozilla.com/en-US/firefox/all.html. Press Load. In the field below, enter “german” and press Find. Scroll a bit down if necessary, until you see

<td class="curVersion" >3.0.1</td>

This seems like a nice portion of the site to extract the latest version number from. Select the text before 3.0.1 and press “Use selection as start”, then select the text after 3.0.1 and press “Use selection as end”. Now 3.0.1 should be drawn in a bold font, with a red text before and a blue text behind.

For the “start selection”, Ketarin will always use the first occurrence of the string, and for the “end selection” the first occurrence after the “start selection” will be used.

Press OK. Now Ketarin will always replace {version} in the URL with the version number written on the website, which should lead to a valid download URL.

Enter the remaining information (save path, options) and press OK.

Commands

In the “Commands” tab of each application you can enter a command which is to be executed before or after every update. This is useful for unzipping ZIP packages, virus scans, installations in background and other purposes. You can also specify a default command for all applications in the settings.

By default, Ketarin waits for the commands to be finished before proceeding with the next download. If you do not like that, you can put an “&” at the very end of the command to execute it in background. If you want to specify multiple commands, you can connect them with “&&” like “copy {$file} … && del {file}”. You can also temporarily disable a command by adding “rem ” at the beginning.

Special variables

Additional to the user defined variables, you can use these predefined ones:

Name

Content

Example

{file}

Location of the downloaded file (only for commands)
Remember to enclose this variable in double quotes (“) if the path contains spaces.

c:\…\x.exe

{filesize}

Size of the downloaded file in bytes

1482245

{root}

Root of the application startup path

c:\

{startuppath}

Startup path of the current Ketarin instance (without exe file)

c:\…\

{category}

Category of the application

Security

{appname}

Name of the application

Ketarin

{appguid}

GUID of the application

{AC1DB…}

{url:ext}

Extension of the file that is being downloaded

exe

{url:basefile}

Base file name of the file that is being downloaded

Ketarin-0.9

{property:X}

Property of an application. X is the name of a property (like “Name”). For all property names check the XML that is generated when exporting an application. The element names correspond to the property names.

{time} or {time-x} or {time+x}

UNIX timestamp of the current time, where x represents the time zone offset in hours.

1285772250

The following variables can be used either as they are (for example {dd}) or like {f:dd}. The latter one refers to the date of the downloaded file, instead of the system date.

{dd}

Day

10

{ddd}

Day name

Tue

{dddd}

Full day name

Tuesday

{hh}

2 digit hour

10

{HH}

2 digit hour (24h)

22

{mm}

Minute 00-59

10

{MM}

Month 01-12

10

{MMM}

Month abbreviation

Oct

{MMMM}

Month full name

December

{ss}

Seconds 00-59

10

{tt}

AM or PM

PM

{yy}

Year, 2 digits

06

{yyyy}

Year

2006

{zz}

Timezone offset, 2 digits

-05

{zzz}

Timezone offset, 2 digits

-05:00

More on variables: Functions

Sometimes you might need a variable value just slightly modified. For such cases, you can use a couple of functions on variables (feel free to suggest more). They are used like this: {variablename:function:argument1:argument2}

Returns the value which is matched by the regular expression (first argument). If groups exist, you can also select a group's value with the second argument. 0 is the whole match, 1 the first group, 2 the second group and so on.

regexreplace

Replaces the content matched with the regular expression (first argument) with the second argument. The second argument may contain $n as references to groups of the regular expression.

replace

Replaces all occurrences of argument1 with argument2

trim

Removes all whitespace at the start and end of a variable. If an argument is given, all characters of that string will be removed.

trimstart

Like trim, but only for the beginning of a word

trimend

Like trim, but only for the end of a word

toupper

Outputs only uppercase characters

tolower

Outputs only lowercase characters

split

Splits the variable content at each occurrence of the first argument and returns the part of the string with the number specified in the second argument (zero based)

startuppath

Returns the startup path of the current Ketarin instance (without exe file)

The custom column

If you right-click on the list view header, you can enable an addional column, called “Custom value” (you can also hide existing ones btw).
If enabled, this column will contain the value of a specifc variable, for example the version number. You can define in the settings dialog which variable to use here. Note that this will only work if the variable is actually defined for an application.

Command line options

You can also run Ketarin from command line. These arguments are available:

/database=FILENAME

Starts Ketarin with the specified database

/export=FILENAME

Exports the whole Ketarin database as XML to the specified location

/log=FILENAME

On exit, Ketarin saves the log as file to the specified location

/notify

(additional to /SILENT) Ketarin will show an icon in the task bar

/silent

No GUI is shown and Ketarin updates all available applications

Templates

An application template is basically an application minus some information. For example, there is no GUID attached to it, so you can import a template multiple times. Typically, a template allows you to download an application of your choice from a website which offers a plethora of downloads.

If you want to share application templates, you can export an existing application as template by choosing “Application Template” as output file type for File –> Export. After that, you can add placeholders manually to the exported XML. When a user imports an application template with placeholders, he will be asked to insert values for them.

To add a placeholder, just add

<placeholder name="This will be shown to the user" />

to the exported XML. You can add as many as you like. The user will only be prompted once for multiple placeholders with the same name.

Portability

If you consider .NET applications (which require the .NET framework) portable, you can consider Ketarin to be portable as well. It doesn't need an installation, so you can run it from any location you like.

By default, Ketarin will create a database file in %appdata%/Ketarin, so that it is a per-user database. You can also move this file to the application path (where Ketarin.exe is located), then it will always use the database from the startup location and is thus suited for USB sticks or the like.