Github

Download version 1.4.8: Windows or Linux

Runtime Library: Multi-application Management

Introduction This library accomplishes two goals:

  1. Manage a collection of small (and possibility related) "mini-applications" as a single Eiffel application.
  2. Implement the concept of a self-installing/uninstalling application on multiple-platforms.

"Swiss-army-knife applications"

Creating a new project application in Eiffel is expensive both in terms of time to create a new ECF and project directory structure, and in terms of diskspace. If all you want to do is create a small utility to do some relatively minor task, it makes sense to include it with a other such utilities in a single application. But you need some framework to manage all these sub-applications. In this package, the two classes EL_MULTI_APPLICATION_ROOT and EL_SUB_APPLICATION provide this capability.

Command line sub-applications

The following features exist for creating command line applications:

Installer Features

Resource Management

The library provides a system of managing application resources like graphics, help files etc.

ECF: app-manage.ecf

Directory: library/runtime/app-manage

[ . ]

. /app-launch-installers

. /app-launch-installers/desktop

. /app-launch-installers/file-context

. /spec/unix

. /spec/windows

. /sub-app

. /sub-app/setters

[ . ]

EL_INSTALLED_FILE_REMOVAL_COMMAND_I

Delayed removal of program directory on uninstall to avoid permission problem

EL_MULTI_APPLICATION_ROOT

Selects an application to launch from an array of sub-applications by either user input or command switch. Can also install/uninstall any sub-applications that have installation configuration info asssociated with them. (System file context menu or system application launch menu)

EL_APPLICATION_CONFIG_CELL

EL_APPLICATION_MUTEX_I

EL_INSTALLER_CONSTANTS

EL_INSTALLER_SUB_APPLICATION

EL_SHARED_APPLICATION_CONFIGURATION

EL_UNINSTALL_APP

EL_VERSION_APP

app-launch-installers

EL_APPLICATION_INSTALLER_I

EL_DO_NOTHING_INSTALLER

app-launch-installers/desktop

EL_DESKTOP_APPLICATION_INSTALLER_I

Install application with a desktop menu

EL_DESKTOP_LAUNCHER

Desktop item for launching application

EL_DESKTOP_CONSOLE_APPLICATION_INSTALLER_I

EL_DESKTOP_MENU_ITEM

EL_DESKTOP_UNINSTALL_APP_INSTALLER_I

app-launch-installers/file-context

EL_CONTEXT_MENU_SCRIPT_APPLICATION_INSTALLER_I

Creates a file context menu entry for application in the OS file manager. In Unix with the GNOME desktop this is implemented using Nautilus-scripts.

spec/unix

EL_APPLICATION_INSTALLER_IMP

Unix implementation of EL_APPLICATION_INSTALLER_I interface

EL_APPLICATION_MUTEX_IMP

Unix implementation of EL_APPLICATION_MUTEX_I interface

EL_CONTEXT_MENU_SCRIPT_APPLICATION_INSTALLER_IMP

Unix implementation of EL_CONTEXT_MENU_SCRIPT_APPLICATION_INSTALLER_I interface Installer for GNOME desktop. Creates Nautilus script program launcher.

EL_DESKTOP_APPLICATION_INSTALLER_IMP

Unix implementation of EL_DESKTOP_APPLICATION_INSTALLER_I interface Creates a GNOME desktop menu application launcher

EL_DESKTOP_CONSOLE_APPLICATION_INSTALLER_IMP

Unix implementation of EL_DESKTOP_CONSOLE_APPLICATION_INSTALLER_I interface

EL_DESKTOP_UNINSTALL_APP_INSTALLER_IMP

Unix implementation of EL_DESKTOP_UNINSTALL_APP_INSTALLER_I interface

EL_INSTALLED_FILE_REMOVAL_COMMAND_IMP

Unix implementation

EL_FILE_API

EL_SHARED_APPLICATIONS_XDG_DESKTOP_MENU

EL_XDG_DESKTOP_DIRECTORY

EL_XDG_DESKTOP_LAUNCHER

EL_XDG_DESKTOP_MENU

EL_XDG_DESKTOP_MENU_ITEM

spec/windows

EL_APPLICATION_INSTALLER_IMP

Windows implementation of EL_APPLICATION_INSTALLER_I interface

EL_APPLICATION_MUTEX_IMP

Windows implementation of EL_APPLICATION_MUTEX_I interface

EL_BATCH_SCRIPT_FILE

Windows batch script encoded using default code page returned by chcp

EL_CONTEXT_MENU_SCRIPT_APPLICATION_INSTALLER_IMP

Windows implementation of EL_CONTEXT_MENU_SCRIPT_APPLICATION_INSTALLER_I interface

EL_DESKTOP_APPLICATION_INSTALLER_IMP

Windows implementation of EL_DESKTOP_APPLICATION_INSTALLER_I interface

Further Information

Click on class link to see notes.

EL_DESKTOP_CONSOLE_APPLICATION_INSTALLER_IMP

Console application installer

EL_DESKTOP_UNINSTALL_APP_INSTALLER_IMP

Windows implementation of EL_DESKTOP_UNINSTALL_APP_INSTALLER_I interface

EL_INSTALLED_FILE_REMOVAL_COMMAND_IMP

Windows implementation of program directory removal command:

rmdir "$software_company_directory"

only works if directory is empty (which is fine)

This command provides some delay inorder to give calling process time to quit.

ping localhost -n 3 >nul

EL_WINDOWS_MUTEX_API

sub-app

EL_COMMAND_ARGUMENT_ERROR

Object containing description of an error in a command line argument

EL_COMMAND_LINE_SUB_APPLICATION

An object that maps command line arguments to an Eiffel make procedure for a target object (command). The 'command' object is automically created and the make procedure specified by 'make_action' is called to intialize it.

EL_COMMAND_ARGUMENT

EL_COMMAND_SHELL_SUB_APPLICATION

EL_SUB_APPLICATION

EL_SUB_APPLICATION_HELP_LIST

sub-app/setters

EL_MAKE_OPERAND_SETTER

Sets the command operands for the generic `command` in class `EL_COMMAND_LINE_SUB_APPLICATION`

EL_BOOLEAN_OPERAND_SETTER

EL_BUILDABLE_FROM_FILE_OPERAND_SETTER

EL_DIR_PATH_OPERAND_SETTER

EL_FILE_PATH_OPERAND_SETTER

EL_INTEGER_OPERAND_SETTER

EL_PATH_OPERAND_SETTER

EL_STRING_32_OPERAND_SETTER

EL_STRING_8_OPERAND_SETTER

EL_ZSTRING_OPERAND_SETTER

EL_ZSTRING_TABLE_OPERAND_SETTER