Banner showing base of Eiffel tower

Github

Download version 1.4.8: Windows or Linux

Runtime Library: Multi-application Management

Classes

ECF: app-manage.ecf

Directory source listing

Overview

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.

Directory: library/runtime/app-manage

[ . ]

. /desktop

. /desktop/launcher

. /spec/unix

. /spec/unix/desktop

. /spec/unix/desktop/xdg

. /spec/windows

. /spec/windows/desktop

. /sub-app

. /sub-app/setters

. /sub-app/standard

. /sub-app/support

[ . ]

EL_APPLICATION_CONFIG_CELL

Application config cell

EL_APPLICATION_MUTEX_I

Application mutex i

EL_MODULE_RELEASE

Access to shared instance of EL_OS_RELEASE_I

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-application conforming to EL_INSTALLABLE_SUB_APPLICATION. (System file context menu or system application launch menu) See sub-applications:

EL_STANDARD_INSTALLER_APP
EL_STANDARD_UNINSTALL_APP

Further Information

Click on class link to see client examples.

EL_OS_RELEASE_I

Basic OS release information

EL_SHARED_APPLICATION_CONFIGURATION

Shared application configuration

EL_VERSION_APP

Version app

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_INSTALLER_DEBUG

Installer debugging aid for EiffelStudio workbench on Linux

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

spec/unix

EL_APPLICATION_MUTEX_IMP

Unix implementation of EL_APPLICATION_MUTEX_I interface

EL_FILE_API

File api

EL_OS_RELEASE_IMP

Unix implementation of EL_OS_RELEASE_I

EL_UNINSTALL_SCRIPT_IMP

Unix implementation of EL_UNINSTALL_SCRIPT_I

spec/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_MENU_DESKTOP_ENVIRONMENT_IMP

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

EL_UNINSTALL_APP_MENU_DESKTOP_ENV_IMP

Unix implementation of EL_UNINSTALL_APP_MENU_DESKTOP_ENV_I interface

spec/unix/desktop/xdg

EL_SHARED_APPLICATIONS_XDG_DESKTOP_MENU

Shared instance of EL_XDG_DESKTOP_MENU

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

spec/windows

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_OS_RELEASE_IMP

Windows implementation of EL_OS_RELEASE_I

EL_UNINSTALL_SCRIPT_IMP

Windows implementation of EL_UNINSTALL_SCRIPT_I

EL_WINDOWS_MUTEX_API

Windows mutex api

spec/windows/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_MENU_DESKTOP_ENVIRONMENT_IMP

Windows implementation of EL_MENU_DESKTOP_ENVIRONMENT_I interface

Further Information

Click on class link to see notes.

EL_UNINSTALL_APP_MENU_DESKTOP_ENV_IMP

Windows implementation of EL_UNINSTALL_APP_MENU_DESKTOP_ENV_I interface

sub-app

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

More client examples can be found in class EL_REGRESSION_TESTABLE_COMMAND_LINE_SUB_APPLICATION.

Further Information

Click on class link to see notes and descendants.

EL_COMMAND_SHELL_SUB_APPLICATION

Command shell sub application

Further Information

Click on class link to see client examples.

EL_INSTALLABLE_SUB_APPLICATION

Sub-application that is installable as a system menu item

Further Information

Click on class link to see client examples.

EL_SHARED_APPLICATION_LIST

Shared instance of EL_SUB_APPLICATION_LIST

EL_SUB_APPLICATION

Sub-application for a root class conforming to EL_MULTI_APPLICATION_ROOT

Further Information

Click on class link to see descendants and client examples.

EL_SUB_APPLICATION_LIST

List of sub-applications

sub-app/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_DIR_PATH_OPERAND_SETTER

Sets a EL_DIR_PATH operand in make routine argument tuple

EL_DOUBLE_OPERAND_SETTER

Sets a DOUBLE operand in make routine argument tuple

EL_ENVIRON_VARIABLE_OPERAND_SETTER

Sets a make routine argument conforming to type EL_ENVIRON_VARIABLE

EL_FILE_PATH_OPERAND_SETTER

Sets a EL_FILE_PATH operand in make routine argument tuple

EL_INTEGER_64_OPERAND_SETTER

Sets a INTEGER_64 operand in make routine argument tuple

EL_INTEGER_OPERAND_SETTER

Sets a INTEGER operand in make routine argument tuple

EL_MAKE_OPERAND_SETTER

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

EL_NATURAL_64_OPERAND_SETTER

Sets a NATURAL_64 operand in make routine argument tuple

EL_NATURAL_OPERAND_SETTER

Sets a NATURAL operand in make routine argument tuple

EL_PATH_OPERAND_SETTER

Sets an' operand conforming to EL_PATH in make routine argument tuple

EL_REAL_OPERAND_SETTER

Sets a REAL operand in make routine argument tuple

EL_STRING_32_OPERAND_SETTER

Sets a STRING_32 operand in make routine argument tuple

EL_STRING_8_OPERAND_SETTER

Sets a STRING_8 operand in make routine argument tuple

EL_ZSTRING_OPERAND_SETTER

Sets a ZSTRING operand in make routine argument tuple

EL_ZSTRING_TABLE_OPERAND_SETTER

Sets values in EL_ZSTRING_HASH_TABLE [ZSTRING] operand in make routine argument tuple Values are set for existing keys which match a command line argument.

sub-app/standard

EL_INSTALLER_CONSTANTS

Installer constants

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

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

sub-app/support

EL_COMMAND_ARGUMENT

Command argument

EL_COMMAND_ARGUMENT_ERROR

Object containing description of an error in a command line argument

EL_SUB_APPLICATION_HELP_LIST

Sub application help list