divekit-cli

command module
v0.0.0-...-e67fd50 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 24, 2026 License: Apache-2.0 Imports: 5 Imported by: 0

README

Divekit CLI

Divekit CLI is the core command-line application for creating, individualizing, distributing, and maintaining Git repositories for academic exercises.

This repository is the source of truth for implementation-coupled maintainer documentation. End-user documentation and published command pages belong in the companion Divekit docs project.

Documentation

User Quick Start

divekit version
divekit doctor
divekit auth
divekit init
divekit distribute --distribution <name>

Use divekit --help to inspect the current CLI surface.

Developer Quick Start

git clone https://gitlab.git.nrw/divekit/divekit-cli.git
cd divekit-cli
./scripts/dev/setup.sh
make build
make test
make check

For day-to-day development, start with:

Repository Scope

This repository contains:

  • the Cobra CLI entrypoints in cmd/divekit
  • application and handler orchestration in internal/app and internal/cmd
  • services, repositories, scripting, templating, and local infrastructure
  • the local GUI server and embedded web assets
  • maintainer-facing architecture, reference, and development documentation

This repository does not aim to be the long-form source of truth for end-user walkthroughs. Those belong in the published documentation site.

Build Notes

  • make build builds the CLI and embedded GUI assets
  • make dev starts the local GUI development workflow
  • make test runs the Go test suite
  • make check runs the work repository checks

Maintainers

Maintained by the ArchiLab team at TH Köln.

Documentation

Overview

Package main provides the entry point for the divekit CLI tool

Directories

Path Synopsis
cmd
divekit
Package divekit provides the main CLI commands for the divekit tool
Package divekit provides the main CLI commands for the divekit tool
tools/interfaceguard command
Package main implements the interfaceguard tool for checking interface implementations
Package main implements the interfaceguard tool for checking interface implementations
internal
app/auth
Package auth exposes the authentication flows to the app layer.
Package auth exposes the authentication flows to the app layer.
app/config/explain
Package explain exposes the config explain command to the app layer.
Package explain exposes the config explain command to the app layer.
app/dev
Package dev exposes the development helper flow to the app layer.
Package dev exposes the development helper flow to the app layer.
app/distributions/actionexec
Package actionexec executes persisted distribution actions for the GUI.
Package actionexec executes persisted distribution actions for the GUI.
app/distributions/common
Package distcommon provides shared distribution loading types and helpers.
Package distcommon provides shared distribution loading types and helpers.
app/distributions/detail
Package detail exposes the distribution detail flow to the app layer.
Package detail exposes the distribution detail flow to the app layer.
app/distributions/distribute
Package distribute exposes the distribution creation flow to the app layer.
Package distribute exposes the distribution creation flow to the app layer.
app/distributions/globallist
Package globallist exposes the global distribution list flow to the app layer.
Package globallist exposes the global distribution list flow to the app layer.
app/distributions/list
Package list exposes the per-origin distribution list flow to the app layer.
Package list exposes the per-origin distribution list flow to the app layer.
app/distributions/members
Package members exposes the member configuration flow to the app layer.
Package members exposes the member configuration flow to the app layer.
app/distributions/overview
Package overview exposes the overview flow to the app layer.
Package overview exposes the overview flow to the app layer.
app/distributions/patch
Package patch exposes the distribution patch flow to the app layer.
Package patch exposes the distribution patch flow to the app layer.
app/distributions/purge
Package purge exposes the distribution purge flow to the app layer.
Package purge exposes the distribution purge flow to the app layer.
app/distributions/repositories
Package repositories exposes the distribution repository listing flow to the app layer.
Package repositories exposes the distribution repository listing flow to the app layer.
app/distributions/role
Package role exposes the distribution role flow to the app layer.
Package role exposes the distribution role flow to the app layer.
app/doctor
Package doctor exposes the environment doctor flow to the app layer.
Package doctor exposes the environment doctor flow to the app layer.
app/fetch
Package fetch exposes the distribution fetch flow to the app layer.
Package fetch exposes the distribution fetch flow to the app layer.
app/index/add
Package add exposes the index add flow to the app layer.
Package add exposes the index add flow to the app layer.
app/index/refresh
Package refresh exposes the index refresh flow to the app layer.
Package refresh exposes the index refresh flow to the app layer.
app/index/search
Package search exposes the index search flow to the app layer.
Package search exposes the index search flow to the app layer.
app/initialize
Package initialize exposes the initialization flow to the app layer.
Package initialize exposes the initialization flow to the app layer.
app/inject
Package inject exposes the inject flow to the app layer.
Package inject exposes the inject flow to the app layer.
app/install
Package install exposes the install flow to the app layer.
Package install exposes the install flow to the app layer.
app/origins/list
Package list exposes the origin listing flow to the app layer.
Package list exposes the origin listing flow to the app layer.
app/origins/refresh
Package refresh exposes the origin index refresh flow to the app layer.
Package refresh exposes the origin index refresh flow to the app layer.
app/origins/remove
Package remove exposes the origin removal flow to the app layer.
Package remove exposes the origin removal flow to the app layer.
app/origins/set
Package set exposes the origin update flow to the app layer.
Package set exposes the origin update flow to the app layer.
app/origins/show
Package show exposes the origin show flow to the app layer.
Package show exposes the origin show flow to the app layer.
app/passcheck
Package passcheck exposes the passcheck flow to the app layer.
Package passcheck exposes the passcheck flow to the app layer.
app/run
Package run exposes the script execution flow to the app layer.
Package run exposes the script execution flow to the app layer.
app/settings/list_hosts
Package listhosts exposes the host listing flow to the app layer.
Package listhosts exposes the host listing flow to the app layer.
app/settings/remove_host
Package removehost exposes the host removal flow to the app layer.
Package removehost exposes the host removal flow to the app layer.
app/settings/rename_host
Package renamehost exposes the host rename flow to the app layer.
Package renamehost exposes the host rename flow to the app layer.
app/settings/upsert_host
Package upserthost exposes the host upsert flow to the app layer.
Package upserthost exposes the host upsert flow to the app layer.
app/uninstall
Package uninstall exposes the uninstall flow to the app layer.
Package uninstall exposes the uninstall flow to the app layer.
app/update
Package update exposes the self-update flow to the app layer.
Package update exposes the self-update flow to the app layer.
assets
Package assets provides embedded resources for the divekit CLI including CI templates, scripts, and example files used for project initialization and distribution.
Package assets provides embedded resources for the divekit CLI including CI templates, scripts, and example files used for project initialization and distribution.
cmd/divekit/auth
Package auth provides authentication functionality for divekit commands
Package auth provides authentication functionality for divekit commands
cmd/divekit/config/explain
Package explain contains CLI handlers for explaining configuration schemas.
Package explain contains CLI handlers for explaining configuration schemas.
cmd/divekit/config/hosts
Package hosts contains CLI handlers for managing authentication host config.
Package hosts contains CLI handlers for managing authentication host config.
cmd/divekit/config/origin
Package origin contains CLI handlers for managing origin/distribution config.
Package origin contains CLI handlers for managing origin/distribution config.
cmd/divekit/detectionoutput
Package detectionoutput contains shared console rendering for token and variation detection results.
Package detectionoutput contains shared console rendering for token and variation detection results.
cmd/divekit/dev
Package dev implements the dev command functionality
Package dev implements the dev command functionality
cmd/divekit/distribute
Package distribute implements the distribute command functionality
Package distribute implements the distribute command functionality
cmd/divekit/distribute/errors
Package disterrors provides constructor functions for creating typed errors used throughout the distribute command functionality.
Package disterrors provides constructor functions for creating typed errors used throughout the distribute command functionality.
cmd/divekit/distribute/progress
Package progress provides progress tracking functionality for repository deletion operations using bubble tea UI components.
Package progress provides progress tracking functionality for repository deletion operations using bubble tea UI components.
cmd/divekit/distribute/ui
Package ui provides output formatting and rendering utilities for the distribute command, including URL styling, warning boxes, and path utilities.
Package ui provides output formatting and rendering utilities for the distribute command, including URL styling, warning boxes, and path utilities.
cmd/divekit/doctor
Package doctor provides diagnostic checks and supporting types used by the divekit CLI to validate local setup and project consistency.
Package doctor provides diagnostic checks and supporting types used by the divekit CLI to validate local setup and project consistency.
cmd/divekit/fetch
Package fetch implements the fetch command functionality
Package fetch implements the fetch command functionality
cmd/divekit/gui/runtime
Package runtime wires the GUI command entry points to the shared server runtime.
Package runtime wires the GUI command entry points to the shared server runtime.
cmd/divekit/index/add
Package add provides error types for the index add command.
Package add provides error types for the index add command.
cmd/divekit/index/refresh
Package refresh defines typed errors for the index refresh command.
Package refresh defines typed errors for the index refresh command.
cmd/divekit/index/search
Package search contains logic used by the interactive and non-interactive search commands, including config loading, action execution, and error handling.
Package search contains logic used by the interactive and non-interactive search commands, including config loading, action execution, and error handling.
cmd/divekit/initialize
Package initialize provides error types for the initialize command.
Package initialize provides error types for the initialize command.
cmd/divekit/inject
Package inject provides error types for the inject command.
Package inject provides error types for the inject command.
cmd/divekit/install
Package install provides error handling functionality for the divekit installation process.
Package install provides error handling functionality for the divekit installation process.
cmd/divekit/overview
Package overview implements the overview command functionality
Package overview implements the overview command functionality
cmd/divekit/passcheck
Package passcheck provides functionality for checking and displaying pass/fail results for distributions.
Package passcheck provides functionality for checking and displaying pass/fail results for distributions.
cmd/divekit/patch
Package patch implements the patch command functionality
Package patch implements the patch command functionality
cmd/divekit/plugin
Package plugin provides errors for evaluation-pipeline plugin management.
Package plugin provides errors for evaluation-pipeline plugin management.
cmd/divekit/purge
Package purge provides CLI handlers for deleting distributed repositories.
Package purge provides CLI handlers for deleting distributed repositories.
cmd/divekit/role
Package role provides error types for role-related operations.
Package role provides error types for role-related operations.
cmd/divekit/run
Package run provides functionality for executing scripts in the divekit context.
Package run provides functionality for executing scripts in the divekit context.
cmd/divekit/uninstall
Package uninstall provides the managed Divekit uninstall workflow.
Package uninstall provides the managed Divekit uninstall workflow.
cmd/divekit/update
Package update provides functionality for updating the divekit CLI tool.
Package update provides functionality for updating the divekit CLI tool.
cmd/flags
Package flags contains shared command flag helpers.
Package flags contains shared command flag helpers.
cmd/middleware
Package middleware provides middleware functionality for command execution, including context propagation, error handling, logging, and metrics.
Package middleware provides middleware functionality for command execution, including context propagation, error handling, logging, and metrics.
cmd/report
Package report provides the legacy HTML report command implementation.
Package report provides the legacy HTML report command implementation.
constants
Package constants defines global constants and utility functions for the divekit CLI.
Package constants defines global constants and utility functions for the divekit CLI.
context
Package appcontext provides helpers for sharing interaction settings via context values.
Package appcontext provides helpers for sharing interaction settings via context values.
error
Package apperror provides common error types and utilities for divekit application.
Package apperror provides common error types and utilities for divekit application.
helper
Package helper provides utility functions and error types for common operations.
Package helper provides utility functions and error types for common operations.
homepath
Package homepath resolves the effective Divekit home directory path.
Package homepath resolves the effective Divekit home directory path.
infrastructure
Package infrastructure aggregates low-level concerns such as filesystem, local data, secrets and concurrency utilities behind a cohesive domain import.
Package infrastructure aggregates low-level concerns such as filesystem, local data, secrets and concurrency utilities behind a cohesive domain import.
infrastructure/concurrency
Package concurrency provides utilities for merging and resolving concurrency configuration settings from multiple sources with proper precedence handling.
Package concurrency provides utilities for merging and resolving concurrency configuration settings from multiple sources with proper precedence handling.
infrastructure/filesystem
Package filesystem provides filesystem abstraction interfaces and implementations.
Package filesystem provides filesystem abstraction interfaces and implementations.
infrastructure/localdata
Package localdata contains types and helpers for local data storage.
Package localdata contains types and helpers for local data storage.
infrastructure/secrets
Package secret provides secure storage and retrieval of sensitive data like tokens.
Package secret provides secure storage and retrieval of sensitive data like tokens.
installation
Package installation manages the user-level Divekit install layout and shell PATH integration.
Package installation manages the user-level Divekit install layout and shell PATH integration.
orchestration/runs
Package runs provides contracts and persistence for orchestrated GUI actions.
Package runs provides contracts and persistence for orchestrated GUI actions.
pathutil
Package pathutil contains helpers for working with Divekit-specific path suffixes.
Package pathutil contains helpers for working with Divekit-specific path suffixes.
pkg/report
Package report normalizes imported test reports for legacy Divekit exports.
Package report normalizes imported test reports for legacy Divekit exports.
project
Package project provides project-related utilities and configuration handling
Package project provides project-related utilities and configuration handling
repository
Package repository aggregates repository-centric concerns such as providers, repository config, indexing and retry strategies under one import path.
Package repository aggregates repository-centric concerns such as providers, repository config, indexing and retry strategies under one import path.
repository/config
Package config provides utilities for loading and saving Divekit CLI configuration files.
Package config provides utilities for loading and saving Divekit CLI configuration files.
repository/config/individual
Package individual provides configuration structures and utilities for handling individualization.
Package individual provides configuration structures and utilities for handling individualization.
repository/config/resolver
Package configresolver provides functionality for resolving configuration keys and values with support for aliases and environment variable references.
Package configresolver provides functionality for resolving configuration keys and values with support for aliases and environment variable references.
repository/config/types
Package types defines shared configuration structures for Divekit distributions.
Package types defines shared configuration structures for Divekit distributions.
repository/indexing
Package index provides a simple SQLite-backed project index for search.
Package index provides a simple SQLite-backed project index for search.
repository/provider
Package dataprovider provides error types for repository data providers.
Package dataprovider provides error types for repository data providers.
repository/provider/common
Package common contains shared helpers for dataprovider adapters.
Package common contains shared helpers for dataprovider adapters.
repository/provider/gitlab
Package gitlab provides error types for the GitLab data provider.
Package gitlab provides error types for the GitLab data provider.
repository/provider/localfs
Package localfs implements a dataprovider that works on the local filesystem.
Package localfs implements a dataprovider that works on the local filesystem.
repository/provider/mock
Package mock provides mock implementations of provider interfaces for testing.
Package mock provides mock implementations of provider interfaces for testing.
repository/provider/simulated
Package simulated implements an in-memory ResourceProvider used for tests and demos.
Package simulated implements an in-memory ResourceProvider used for tests and demos.
repository/retry
Package retry provides helpers and typed errors for retrying operations.
Package retry provides helpers and typed errors for retrying operations.
repository/typescompat
Package pkgtypes provides small shared utility types and helpers.
Package pkgtypes provides small shared utility types and helpers.
resource
Package resource provides path and filesystem utilities and typed errors.
Package resource provides path and filesystem utilities and typed errors.
scripting
Package scripting provides functionality for discovering and loading Lua scripts used for customization and extension of divekit operations.
Package scripting provides functionality for discovering and loading Lua scripts used for customization and extension of divekit operations.
scripting/contracts
Package contracts defines interfaces for scripting and transformation operations.
Package contracts defines interfaces for scripting and transformation operations.
scripting/lua
Package lua provides Lua scripting engine integration
Package lua provides Lua scripting engine integration
server/gui
Package gui provides the embedded HTTP server and app-layer adapters for the GUI.
Package gui provides the embedded HTTP server and app-layer adapters for the GUI.
service
Package service provides high-level business logic services for divekit commands.
Package service provides high-level business logic services for divekit commands.
shell
Package shell aggregates user interaction concerns (userinput, ui, flags) behind a cohesive import for CLI-related functionality.
Package shell aggregates user interaction concerns (userinput, ui, flags) behind a cohesive import for CLI-related functionality.
shell/flags
Package flagsutil provides utility functions for command-line flag validation.
Package flagsutil provides utility functions for command-line flag validation.
shell/input
Package input provides user input handling and validation functionality
Package input provides user input handling and validation functionality
shell/logging
Package log provides application-wide logging utilities and typed errors for consistent log level parsing and reporting.
Package log provides application-wide logging utilities and typed errors for consistent log level parsing and reporting.
shell/output
Package output provides styled helpers for user-facing console messages.
Package output provides styled helpers for user-facing console messages.
shell/progress
Package progress provides shared helpers around bubbles progress bars and programs.
Package progress provides shared helpers around bubbles progress bars and programs.
shell/secretinput
Package secretinput provides masked terminal input with temporary reveal support.
Package secretinput provides masked terminal input with temporary reveal support.
shell/theme
Package theme defines the shared color palette and base lipgloss styles.
Package theme defines the shared color palette and base lipgloss styles.
shell/ui
Package ui provides styling and formatting utilities for terminal UI components.
Package ui provides styling and formatting utilities for terminal UI components.
shell/userinput
Package userinput provides error types for user input operations.
Package userinput provides error types for user input operations.
templating
Package templating aggregates individualization, token generation and detection, as well as variable-value detection behind a cohesive import.
Package templating aggregates individualization, token generation and detection, as well as variable-value detection behind a cohesive import.
templating/detectionutil
Package detectionutil provides helpers for loading detection-related configuration used by variable/token detection logic.
Package detectionutil provides helpers for loading detection-related configuration used by variable/token detection logic.
templating/individualizer
Package individualizer provides a flexible token replacement and file manipulation system.
Package individualizer provides a flexible token replacement and file manipulation system.
templating/solutiondeletion
Package solutiondeletion applies removal rules to filter solution content from repositories.
Package solutiondeletion applies removal rules to filter solution content from repositories.
templating/tokens
Package tokendetection provides functionality to detect and collect tokens in source code.
Package tokendetection provides functionality to detect and collect tokens in source code.
templating/tokens/transformers
Package transformers provides various string transformation functions used for generating individualization tokens from class names.
Package transformers provides various string transformation functions used for generating individualization tokens from class names.
templating/variable
Package variablevalue provides detection utilities for spotting values from non-selected variations within individualized content.
Package variablevalue provides detection utilities for spotting values from non-selected variations within individualized content.
test
Package test contains shared test helpers and assertions.
Package test contains shared test helpers and assertions.
version
Package version provides version information for the application.
Package version provides version information for the application.
worker
Package worker provides shared worker pool configuration and execution primitives.
Package worker provides shared worker pool configuration and execution primitives.
scripts
gitlab/seed command
Command gitlab-seed seeds a GitLab instance with example groups and users for local testing and development.
Command gitlab-seed seeds a GitLab instance with example groups and users for local testing and development.
Package webassets embeds the built GUI assets into the CLI binary.
Package webassets embeds the built GUI assets into the CLI binary.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL