Skip to content
Joey Turner edited this page Jan 8, 2024 · 18 revisions

Framework

A request from the developers

Overview

Configuring HW/SW Aspects of Armbian As developers, we aim to refactor the framework for configuring hardware (HW) and software (SW) aspects of Armbian. The goal is to achieve a modular, parameter-driven Command Line Interface (CLI), dialog, and X-based engine. We also aim to provide help for each command accessible from both CLI and menus, implement a mechanism for automated functionality testing, enable software deployment with GitHub actions, and maintain a modular design that facilitates the addition of new software titles or functionality.

User Perspective

As an end user, the functions will be categorized into three levels:

  • Basic: Core functions only
  • Intermediate: Functions in the middle
  • Advanced: Exposed all functions

This approach ensures that users do not need to think more than necessary , providing a streamlined experience.

Proposed Features

  1. Parameter-Driven CLI, Dialog, and X-Based Engine

    • Implement parameter-driven CLI
    • Develop dialog-based engine
    • Create an X-based engine Use exiting
  2. Help Mechanism

    • Provide help for each command in the CLI
    • Implement a help system accessible via menus
  3. Automated Functionality Testing

    • Define and set up a mechanism for automated functionality testing
  4. Software Deployment

    • Enable software deployment
  5. Modular Design

    • Design a modular architecture
    • Ensure ease of adding new software titles or functionality

Milestones

Milestones

  • Parameter-driven CLI
    • armbian-configng string=string
    • armbian-configng -o, --option
  • Help for basic commands
    • armbian-configng help
    • armbian-configng -h
    • armbian-configng --help
  • Core functionality for basic level users
  • Dialog-based engine
  • Software deployment with Ansible GitHub actions
  • Modular architecture in place
    • Dynamically Scans lib/armbian-configng//
  • Ease of adding new software titles or functionality

Additional Notes

Clone this wiki locally