Banner showing base of Eiffel tower

Github

Download version 1.4.8: Windows or Linux

Runtime Library: Multi-Application Management

This library has 89 classes.

ECF: app-manage.ecf

Source code: directory list

This library has two main purposes:

  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_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.

Directory: library/runtime/app-manage

. /config

. /debian

. /desktop

. /desktop/launcher

. /imp_mswin

. /imp_mswin/debian

. /imp_mswin/desktop

. /imp_mswin/desktop/launcher

. /imp_mswin/sub-app/standard

. /imp_unix

. /imp_unix/debian

. /imp_unix/desktop

. /imp_unix/desktop/launcher

. /imp_unix/desktop/xdg

. /imp_unix/sub-app/standard

. /multi-app

. /multi-app/argument

. /multi-app/command_line

. /multi-app/command_line/setters

. /multi-app/sub-app

. /multi-app/support

. /resource

. /shell

. /standard-app

. /support

. /version

config

EL_APPLICATION_CONFIGURATION

Application configuration object

EL_RELECTIVE_XML_APP_CONFIGURATION

Application configuration relectively storable as XML

EL_SHARED_APPLICATION

Shared access to first created instance of object conforming to EL_APPLICATION

debian

EL_DEBIAN_CONSTANTS

Debian constants

EL_DEBIAN_CONTROL

Debian package information file: DEBIAN/control

EL_DEBIAN_MAKE_SCRIPT

Script to create Debian package after adjusting file permissions and ownership

Further Information

Click on class link to see notes.

EL_DEBIAN_PACKAGER_I

Command that will create a Debian install package for current application based on a root class that inherits EL_MULTI_APPLICATION_ROOT.

Further Information

Click on class link to see notes and instructions.

desktop

EL_CONSOLE_APP_MENU_DESKTOP_ENV_I

Desktop console application installer i

Further Information

Click on class link to see client examples.

EL_DEFAULT_DESKTOP_ENVIRONMENT

Default desktop environment

EL_DESKTOP_ENVIRONMENT_I

Application desktop environment

Further Information

Click on class link to see client examples.

EL_FILE_CONTEXT_MENU_DESKTOP_ENV_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.

EL_UNINSTALL_APP_MENU_DESKTOP_ENV_I

Desktop uninstall-application installer

desktop/launcher

EL_DESKTOP_MENU_ITEM

Desktop menu item

Further Information

Click on class link to see client examples.

EL_MENU_DESKTOP_ENVIRONMENT_I

Setup application with a desktop menu

Further Information

Click on class link to see client examples.

imp_mswin

EL_OS_RELEASE_IMP

Windows implementation of EL_OS_RELEASE_I

imp_mswin/debian

EL_DEBIAN_PACKAGER_IMP

Windows implementation of EL_DEBIAN_PACKAGER_I

imp_mswin/desktop

EL_CONSOLE_APP_MENU_DESKTOP_ENV_IMP

Windows implementation of EL_CONSOLE_APP_MENU_DESKTOP_ENV_I interface

EL_DESKTOP_ENVIRONMENT_IMP

Windows implementation of EL_DESKTOP_ENVIRONMENT_I' interface

EL_FILE_CONTEXT_MENU_DESKTOP_ENV_IMP

Windows implementation of EL_FILE_CONTEXT_MENU_DESKTOP_ENV_I interface

EL_UNINSTALL_APP_MENU_DESKTOP_ENV_IMP

Windows implementation of EL_UNINSTALL_APP_MENU_DESKTOP_ENV_I interface

imp_mswin/desktop/launcher

EL_MENU_DESKTOP_ENVIRONMENT_IMP

Windows implementation of EL_MENU_DESKTOP_ENVIRONMENT_I interface

Further Information

Click on class link to see notes.

imp_mswin/sub-app/standard

EL_UNINSTALL_SCRIPT_IMP

Windows implementation of EL_UNINSTALL_SCRIPT_I

imp_unix

EL_OS_RELEASE_IMP

Unix implementation of EL_OS_RELEASE_I

imp_unix/debian

EL_DEBIAN_PACKAGER_IMP

Unix implementation of EL_DEBIAN_PACKAGER_I

imp_unix/desktop

EL_CONSOLE_APP_MENU_DESKTOP_ENV_IMP

Unix implementation of EL_CONSOLE_APP_MENU_DESKTOP_ENV_I interface

EL_DESKTOP_ENVIRONMENT_IMP

Unix implementation of EL_DESKTOP_ENVIRONMENT_I interface

EL_FILE_CONTEXT_MENU_DESKTOP_ENV_IMP

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

EL_UNINSTALL_APP_MENU_DESKTOP_ENV_IMP

Unix implementation of EL_UNINSTALL_APP_MENU_DESKTOP_ENV_I interface

imp_unix/desktop/launcher

EL_MENU_DESKTOP_ENVIRONMENT_IMP

Unix implementation of EL_MENU_DESKTOP_ENVIRONMENT_I interface Creates a XDG desktop menu application launcher

imp_unix/desktop/xdg

EL_XDG_CONSTANTS

XDG constants

EL_XDG_DESKTOP

Parsed XDG desktop entry

EL_XDG_DESKTOP_DIRECTORY

XDG desktop directory

EL_XDG_DESKTOP_ENTRY_STEPS

List of items conforming to EL_XDG_DESKTOP_MENU_ITEM

EL_XDG_DESKTOP_LAUNCHER

XDG desktop launcher

EL_XDG_DESKTOP_MENU

XDG desktop menu

EL_XDG_DESKTOP_MENU_ITEM

XDG desktop menu item

imp_unix/sub-app/standard

EL_UNINSTALL_SCRIPT_IMP

Unix implementation of EL_UNINSTALL_SCRIPT_I

multi-app

EL_APPLICATION_LIST

List of sub-applications

EL_INSTALLABLE_APPLICATION

Sub-application that is installable as a system menu item

Further Information

Click on class link to see client examples.

EL_LOCALIZED_APPLICATION

Localized application with English as the default locale

Further Information

Click on class link to see notes and client examples.

EL_MAIN_INSTALLABLE_APPLICATION

Principle or main application for installation

Further Information

Click on class link to see notes and client examples.

EL_MULTI_APPLICATION_ROOT

Selects a sub-application to launch from a shared list of uninitialized instances conforming to EL_APPLICATION. The list is created using types defined by the APPLICATION_TYPES tuple parameter. A command line option matching the string value {EL_APPLICATION}.option_name selects that instance. Calling make on the selected instance executes the sub-application.

Further Information

Click on class link to see notes and client examples.

EL_SHARED_APPLICATION_LIST

Shared instance of EL_APPLICATION_LIST

multi-app/argument

EL_APPLICATION_COMMAND_OPTIONS

Command line options for app-manage.ecf library accessible from EL_SHARED_APPLICATION_OPTION

Further Information

Click on class link to see client examples.

EL_DEFINE_VARIABLE_COMMAND_OPTION

Implement -define command option to allow user to define an environment variable as a command argument.

EL_SHARED_APPLICATION_OPTION

Shared instance of object conforming to EL_APPLICATION_COMMAND_OPTIONS

multi-app/command_line

EL_COMMAND_ARGUMENT

Command line argument for setting operand of make routine

Further Information

Click on class link to see client examples.

EL_COMMAND_ARGUMENT_ERROR

EL_ERROR_DESCRIPTION for command line argument errors

multi-app/command_line/setters

EL_BOOLEAN_OPERAND_SETTER

Sets a BOOLEAN operand in make routine argument tuple

EL_BUILDABLE_FROM_FILE_OPERAND_SETTER

Builds an operand conforming to EL_BUILDABLE_FROM_FILE in make routine argument tuple

EL_MAKEABLE_FROM_ZSTRING_OPERAND_SETTER

Sets an operand conforming to EL_MAKEABLE_FROM_STRING [STRING_GENERAL] in make routine argument tuple

Further Information

Click on class link to see client examples.

EL_MAKE_OPERAND_SETTER

Sets the command operands for the generic command in class EL_COMMAND_LINE_APPLICATION

Further Information

Click on class link to see tests and descendants.

EL_OPERAND_SETTER

Validates and sets tuple operands for the basic types, strings and paths

EL_PATH_OPERAND_SETTER

Sets an operand conforming to EL_PATH in make routine argument tuple

EL_STRING_TABLE_OPERAND_SETTER

Sets values in HASH_TABLE [ANY, READABLE_STRING_GENERAL] operand in make routine argument tuple Values are set for existing keys which match a command line argument.

multi-app/sub-app

EL_APPLICATION

Sub-application for a root class conforming to EL_MULTI_APPLICATION_ROOT

Further Information

Click on class link to see notes, descendants and client examples.

EL_APPLICATION_IMPLEMENTATION

Implementation details for class EL_APPLICATION

EL_COMMAND_LINE_APPLICATION

Maps command line arguments to the arguments of the make procedure of the command object conforming to EL_COMMAND. If no mapping errors occur during the initilization, the run procedure is called and executes the command.

Further Information

Click on class link to see notes, descendants and client examples.

EL_COMMAND_SHELL_APPLICATION

Command shell sub application

Further Information

Click on class link to see client examples.

multi-app/support

EL_APPLICATION_CONSTANTS

Application constants

EL_APPLICATION_HELP_LIST

Sub-application help list sortable by option_name

EL_SHARED_UNINSTALL_TEXTS

Shared instance of EL_UNINSTALL_TEXTS

EL_UNINSTALL_SCRIPT_I

Creates script to uninstall application and a sub-script to remove user files

Further Information

Click on class link to see notes.

EL_UNINSTALL_TEXTS

Localized texts for EL_STANDARD_UNINSTALL_APP

Further Information

Click on class link to see client examples.

EL_UNIX_APPLICATION

Unix only application

Further Information

Click on class link to see client examples.

resource

EL_DOWNLOADEABLE_RESOURCE

Downloadable resource

EL_RESOURCE_INSTALL_MANAGER

Manager to install/update a directory of file items with common extension by HTTP download As an update manager it checks for install-updates in a user directory.

Further Information

Click on class link to see instructions.

EL_RESOURCE_URL

Secure resource url with optional language substitution variable $LANG

EL_UPDATEABLE_RESOURCE_SET

Updateable set of numbered file resources available in an installation directory and a user data directory

shell

EL_ACTIVE_SERVICE_SCREEN

Service screen that is present in the output of command screen -list

EL_SERVICE_CONFIGURATION

Service management configuration for EL_SERVICE_MANAGER_SHELL

EL_SERVICE_MANAGER_SHELL

Service manager shell based on the Unix screen command

EL_SERVICE_SCREEN

Service launched using the Unix screen command

EL_SERVICE_SCREEN_LIST

List of Unix service screens conforming to EL_SERVICE_SCREEN

standard-app

EL_DEBIAN_PACKAGER_APP

Command line interface to create object conforming to interface EL_DEBIAN_PACKAGER_I

EL_LOCALIZED_DEBIAN_PACKAGER_APP

Debian package generator with support for localized XDG desktop menu strings

EL_SERVICE_MANAGER_APP

Command line interface to EL_SERVICE_MANAGER_SHELL for managing services specified in a configuration file from a shell menu

EL_STANDARD_INSTALLER_APP

Standard command-line installer for application with root conforming to EL_MULTI_APPLICATION_ROOT. To use it include the type representation in the list {EL_MULTI_APPLICATION_ROOT}.application_types. Assumes the following directory structure:

package/bin/<application name>

EL_STANDARD_REMOVE_DATA_APP

Standard application to prompt user to remove (current) application data and configuration files directories for all users. Usually called from DEBIAN/prerm script with root permissions.

Further Information

Click on class link to see client examples.

EL_STANDARD_UNINSTALL_APP

Standard command-line uninstall for application with root conforming to EL_MULTI_APPLICATION_ROOT.

After removing data, configuration and menu files, it generates a forked script to remove the program files after the application has exited. The script has a pause in it to allow time for the parent process to exit.

Further Information

Click on class link to see instructions and client examples.

EL_VERSION_APP

Version app

support

EL_APPLICATION_MUTEX

Application mutex to create an application singleton

EL_INSTALL_UNINSTALL_TESTER

Installer testing aid for EiffelStudio workbench on Linux

EL_SHARED_INSTALL_UNINSTALL_TESTER

Shared instance of EL_INSTALL_UNINSTALL_TESTER

version

EL_DEFAULT_SOFTWARE_UPDATE_INFO

Default implementation of EL_SOFTWARE_UPDATE_INFO

EL_MODULE_OS_RELEASE

Access to shared instance of EL_OS_RELEASE_I

EL_OS_RELEASE_I

Basic OS release information

EL_SOFTWARE_UPDATE_INFO

Abstraction to obtain information on latest application version

EL_VERSION_PATH_LIST

Manage list of executable or package file paths with version number between hyphen and dot extension.

Example:

download/myching-amd64-1.1.2.deb
download/MyChing-de-win32-1.1.2.exe
download/MyChing-de-win32-1.1.4.exe
download/MyChing-de-win64-1.1.2.exe
download/MyChing-de-win64-1.1.4.exe
download/MyChing-en-win32-1.1.2.exe
download/MyChing-en-win32-1.1.4.exe
download/MyChing-en-win64-1.1.2.exe
download/MyChing-en-win64-1.1.4.exe

Accepts user input by command line to confirm deletions.

Further Information

Click on class link to see client examples.