Feature CONFIGURE

Description and Priority

The main yaktrack application should search "upward" from its called location until it finds a yaktrack repository. It should then look in the yaktrack-options subdirectory to find files to customize itself.

Stimulus/Response Sequences

CONFIGURE.UC: Configure yaktrack using the yaktrack-options subdirectory

Description

During creation of the main yaktrack command object, the object factory searches "up" the directory structure for a yaktrack repository. When this is found, the yaktrack-options directory will be parsed to configure the yaktrack command object prior to its execution with the command line arguments

Requires

Installed yaktrack program

Ensures

Properly located repository or identification of no repository
Located repository implies configured yaktrack tool

Priority

Very high

Frequency

Very high; done each command

Normal course of action

Table 4-4. Normal course of action

Actor actionsSystem actions
Tool is activatedLooks in current directory and parent for yaktrack-repository directory
 Enters yaktrack-repository directory
 Stores the location of this repository in the top-level command object
 Enters yaktrack-options subdirectory
 Configures top-level command object with options in the yaktrack-options subdirectory by importing the configure_base_tool.py file therein and executing the configure_base_tool( tool ) function on the current command object.

Functional Requirements

CONFIGURE.FR1. The system should "walk" the directory tree upward to find the first available repository

CONFIGURE.FR2. If no repository is found, the system should note that in the feedback to the user and suggest the create-repository command.

CONFIGURE.FR3. If a repository is found, the system should locate and enter the yaktrack-options subdirectory.

CONFIGURE.FR4. If the yaktrack-options directory is not found, the system should notify the user through feedback.

CONFIGURE.FR5. If the yaktrack-options directory is found, the system should load the configure_base_tool.py file and execute the configure_base_tool function with the current base yaktrack tool as the primary argument

CONFIGURE.FR6. If the yaktrack-options directory is not found or the configure_base_tool.py file is not found or the configure_base_tool function is not present, the system shall notify the user of the specifics of the configuration error. It is not necessary for each repository to have all files, but the user should be notified.