start-command 0.14.3

Gamification of coding, execute any command with ability to auto-report issues on GitHub
Documentation
//! start-command library
//!
//! Provides command execution with isolation, substitution, and failure handling.

pub mod args_parser;
pub mod execution_control;
pub mod execution_store;
pub mod failure_handler;
pub mod isolation;
pub mod output_blocks;
pub mod sequence_parser;
pub mod signal_handler;
pub mod status_formatter;
pub mod substitution;
pub mod usage;
pub mod user_manager;

mod lino_value_json;
mod local_hostname;

// Re-export commonly used items
pub use args_parser::{
    generate_session_name, generate_uuid, get_effective_mode, has_isolation, is_valid_uuid,
    parse_args, validate_options, ParsedArgs, WrapperOptions, VALID_BACKENDS, VALID_OUTPUT_FORMATS,
    VALID_SHELLS,
};
pub use execution_control::{
    collect_descendant_pids, collect_descendant_pids_with_runner, collect_process_ids,
    collect_process_ids_with_runner, control_execution, control_execution_with_runner,
    format_control_result_as_links_notation, get_control_command, parse_screen_pid,
    CommandRunOutput, CommandRunner, ControlAction, ControlCommand, ExecutionControlResult,
    SystemCommandRunner,
};
pub use execution_store::{
    is_clink_installed, CleanupOptions, CleanupResult, ExecutionRecord, ExecutionRecordOptions,
    ExecutionStats, ExecutionStatus, ExecutionStore, ExecutionStoreOptions,
};
pub use failure_handler::{handle_failure, Config as FailureConfig};
pub use isolation::{
    append_log_file, build_shell_with_args_cmd_args, create_log_footer, create_log_header,
    create_log_path, create_log_path_for_execution, docker_image_exists, docker_pull_image,
    get_default_docker_image, get_timestamp, is_command_available, is_interactive_shell_command,
    is_shell_invocation_with_args, run_as_isolated_user, run_isolated, write_log_file,
    IsolationOptions, IsolationResult, LogHeaderParams,
};
#[allow(deprecated)]
pub use output_blocks::{
    // Timeline format API (formerly "status spine")
    create_command_line,
    create_empty_spine_line, // deprecated, use create_empty_timeline_line
    create_empty_timeline_line,
    create_finish_block,
    create_spine_line, // deprecated, use create_timeline_line
    create_start_block,
    create_timeline_line,
    create_timeline_separator,
    create_virtual_command_block,
    create_virtual_command_result,
    escape_for_links_notation,
    format_duration,
    format_value_for_links_notation,
    generate_isolation_lines,
    get_result_marker,
    parse_isolation_metadata,
    FinishBlockOptions,
    IsolationMetadata,
    StartBlockOptions,
    FAILURE_MARKER,
    SPINE, // deprecated, use TIMELINE_MARKER
    SUCCESS_MARKER,
    TIMELINE_MARKER,
};
pub use signal_handler::{
    clear_current_execution, get_signal_exit_code, set_current_execution, setup_signal_handlers,
    was_signal_received,
};
pub use status_formatter::{
    attach_current_time, enrich_detached_status, format_record, format_record_as_links_notation,
    format_record_as_links_notation_with_current_time, format_record_as_text,
    format_record_as_text_with_current_time, format_record_list,
    format_record_list_as_links_notation, format_record_list_as_text,
    format_record_with_current_time, is_detached_session_alive, list_executions, query_status,
    StatusQueryResult,
};
pub use substitution::{process_command, ProcessOptions, SubstitutionResult};
pub use usage::print_usage;
pub use user_manager::{
    create_isolated_user, delete_user, get_current_user, get_current_user_groups, has_sudo_access,
    CreateIsolatedUserOptions, DeleteUserOptions, UserOperationResult,
};