helmfile/pkg/common
Hubertbits 35bb7dca97 pkg/common: Update types
Signed-off-by: yxxhero <aiopsclub@163.com>
2025-04-17 07:30:37 +08:00
..
README.md pkg/common: Update types 2025-04-17 07:30:37 +08:00
bool_flag.go Run make fmt 2025-04-17 07:30:37 +08:00
bool_flag_test.go Run make fmt 2025-04-17 07:30:37 +08:00
map_flag.go pkg/common: Update types 2025-04-17 07:30:37 +08:00
map_flag_test.go pkg/common: Update types 2025-04-17 07:30:37 +08:00
string_array_flag.go pkg/common: Update types 2025-04-17 07:30:37 +08:00
string_array_flag_test.go pkg/common: Update types 2025-04-17 07:30:37 +08:00
string_flag.go Run make fmt 2025-04-17 07:30:37 +08:00
string_flag_test.go Run make fmt 2025-04-17 07:30:37 +08:00

README.md

Common Package

Overview

The pkg/common package provides common utilities, types, and interfaces used throughout the Helmfile application. This package contains shared functionality that doesn't belong to any specific domain but is used by multiple components.

Current File Structure

pkg/common/
├── README.md                    # This documentation file
├── bool_flag.go                 # Boolean flag implementation
├── bool_flag_test.go            # Tests for boolean flag
├── string_flag.go               # String flag implementation
├── string_flag_test.go          # Tests for string flag
├── string_array_flag.go         # String array flag implementation
├── string_array_flag_test.go    # Tests for array flag
├── map_flag.go                  # Map flag implementation
├── map_flag_test.go             # Tests for map flag

Planned Future Implementations

The following files are planned for future development:

├── constants.go          # Common constants used throughout the application
├── errors.go             # Common error types and error handling utilities
├── errors_test.go        # Tests for error utilities
├── logging.go            # Logging utilities and interfaces
├── logging_test.go       # Tests for logging utilities
├── types.go              # Common type definitions
├── types_test.go         # Tests for common types
├── utils.go              # General utility functions
└── utils_test.go         # Tests for utility functions

Components

Currently Implemented

Flag Types

  • BoolFlag: A boolean flag implementation with value tracking
  • StringFlag: A string flag implementation with value tracking
  • StringArrayFlag: A string array flag implementation with value tracking
  • MapFlag: A map flag implementation with value tracking

Planned for Future Implementation

Utilities

  • Constants: Common constants used throughout the application
  • Error Handling: Standardized error types and handling
  • Logging: Consistent logging interfaces and utilities
  • Types: Common type definitions
  • Utilities: General utility functions

Key Features

Currently Available

  • Flag Implementations: Reusable flag implementations with value tracking

Planned Features

  • Error Handling: Standardized error types and handling
  • Logging: Consistent logging interfaces and utilities
  • Type Safety: Common type definitions for consistent usage

Usage

Flag Usage

// Create a boolean flag
includeFlag := common.NewBoolFlag(false)

// Set the flag value
includeFlag.Set(true)

// Get the flag value
value := includeFlag.Value()

Future Error Handling (Planned)

// Create a common error
err := common.NewError("operation failed")

// Check if an error is of a specific type
if common.IsNotFoundError(err) {
    // Handle not found error
}

Future Logging (Planned)

// Create a logger
logger := common.NewLogger()

// Log messages
logger.Info("Operation started")
logger.Error("Operation failed: %v", err)
  • pkg/config: Uses common flag types for option configuration
  • pkg/flags: Integrates with common flag types for flag handling
  • pkg/app: Uses common utilities for application functionality