Banner showing base of Eiffel tower

Github

Download version 1.4.8: Windows or Linux

Runtime Library: Multi-Application Management

This library has 90 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

Further Information

Click on class link to see client examples.

EL_SHARED_APPLICATION

Shared access to first created instance of object conforming to EL_APPLICATION

debian

EL_DEBIAN_CONSTANTS

Debian constants

Further Information

Click on class link to see client examples.

EL_DEBIAN_CONTROL

Debian package information file: DEBIAN/control

Further Information

Click on class link to see client examples.

EL_DEBIAN_MAKE_SCRIPT

Script to create Debian package after adjusting file permissions and ownership

Further Information

Click on class link to see notes and client examples.

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, instructions and client examples.

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

Further Information

Click on class link to see client examples.

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

Further Information

Click on class link to see client examples.

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

Further Information

Click on class link to see client examples.

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_BASE

Implementation base 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

Further Information

Click on class link to see client examples.

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 and client examples.

EL_RESOURCE_URL

Secure resource url with optional language substitution variable $LANG

Further Information

Click on class link to see client examples.

EL_UPDATEABLE_RESOURCE_SET

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

Further Information

Click on class link to see client examples.

shell

EL_ACTIVE_SERVICE_SCREEN

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

Further Information

Click on class link to see client examples.

EL_SERVICE_CONFIGURATION

Service management configuration for EL_SERVICE_MANAGER_SHELL

Further Information

Click on class link to see client examples.

EL_SERVICE_MANAGER_SHELL

Service manager shell based on the Unix screen command

Further Information

Click on class link to see client examples.

EL_SERVICE_SCREEN

Service launched using the Unix screen command

Further Information

Click on class link to see client examples.

EL_SERVICE_SCREEN_LIST

List of Unix service screens conforming to EL_SERVICE_SCREEN

Further Information

Click on class link to see client examples.

standard-app

EL_DEBIAN_PACKAGER_APP

Command line interface to create object conforming to interface EL_DEBIAN_PACKAGER_I

Further Information

Click on class link to see client examples.

EL_LOCALIZED_DEBIAN_PACKAGER_APP

Debian package generator with support for localized XDG desktop menu strings

Further Information

Click on class link to see client examples.

EL_QUERY_SELF_APP

Standard application to list all running instances of current application with it's command line and process ID

Further Information

Click on class link to see notes and client examples.

EL_SERVICE_MANAGER_APP

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

Further Information

Click on class link to see client examples.

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>

Further Information

Click on class link to see client examples.

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

Further Information

Click on class link to see client examples.

EL_MODULE_OS_RELEASE

Access to shared instance of EL_OS_RELEASE_IMP

EL_OS_RELEASE_I

Basic OS release information

EL_SOFTWARE_UPDATE_INFO

Abstraction to obtain information on latest application version

Further Information

Click on class link to see client examples.

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.