#!/usr/bin/env bash # Compile scala classes into a jar file scalac "$@" -d out.jar # Create the Manifest and include scala lib jars: # NOTE: - entry point will only consider @main and App traits from the main file # - scala lib jars will be added to the class path in order to run the jar properly echo "Main-Class: $(grep -oP '\@main\s+def\s+\K[a-zA-Z][a-zA-Z0-9]*|object\s+\K[a-zA-Z][a-zA-Z0-9]*(?=\s+extends\s+App)' $1) Class-Path: $(echo $JAVA_HOME/lib/*.jar | sed 's/\s/\n /g') " > manifest.txt # Update the jar with the manifest jar ufm out.jar manifest.txt