Jar bootloader
Objective-J Scala CSS Shell CoffeeScript Java
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
config Switched over to SBT 0.13.x, migrated server, bumped dependencies. Nov 16, 2013
core Switched over to SBT 0.13.x, migrated server, bumped dependencies. Nov 16, 2013
lift Switched over to SBT 0.13.x, migrated server, bumped dependencies. Nov 16, 2013
logs/nginx
project Switched over to SBT 0.13.x, migrated server, bumped dependencies. Nov 16, 2013
.gitignore
.gitmodules Serving static assets via asset submodule. Jul 1, 2013
README.md Added .gitignore (exact copy of .bzrignore) Oct 8, 2011
UNLICENSE Moved UNLICENSE to root folder, added binary and zip packages Oct 7, 2011
prepare-workspace.bat Dependency bumps, SBT bumps, documentation version bumps. Jul 1, 2013
prepare-workspace.sh Fixed a few typos, bump GRUJ to 0.1.4 Oct 9, 2011
sbt.bat Switched over to SBT 0.13.x, migrated server, bumped dependencies. Nov 16, 2013
sbt.sh Switched over to SBT 0.13.x, migrated server, bumped dependencies. Nov 16, 2013

README.md

What is GRUJ?

GRUJ is an application which downloads and launches jar files. Its primary function is to reduce the binary footprint of source versioned projects and releases to a minimum, due to its tiny size (~3kb).

GRUJ was written in Jasmin, and the source code is freely available. This is free and unencumbered software released into the public domain.

Why use GRUJ?

Although there are many cross-platform tools that would do the job, such as wget, curl and similar the main problem is that none of these is available by default on all platforms. Since GRUJ is primarily designed to bootstrap other Java programs, the only thing you need is a JRE itself.

Same goes for calculating checksums. Again, there is a lot of tools available, but if you want to write a bash/batch script and make sure it's solid, you need to make sure that whatever digest engine you used is already installed. GRUJ can double as a poor man's checksum verifier, since it can generate MD5 and SHA-1 hashes. In short – it's a couple of simple functions related to downloading and verifying wrapped in one small package.

How does GRUJ work?

  • Check to see if file was already downloaded before
    • optionally check the cached file against a checksum
    • optionally delete the invalidated file on checksum mismatch
  • If file did not exist, download it from the provided URL
    • optionally compare the newly downloaded file to a checksum
  • Run the jar file by invoking its main-class method
    • optionally run a different main method