Initial upload: GitPulse - Developer Productivity Analyzer CLI tool
This commit is contained in:
69
src/commands/init.rs
Normal file
69
src/commands/init.rs
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
use crate::config::Config;
|
||||||
|
use anyhow::{Context, Result};
|
||||||
|
use std::fs;
|
||||||
|
use std::path::PathBuf;
|
||||||
|
|
||||||
|
pub fn run(config: &Config) -> Result<()> {
|
||||||
|
let config_path = Config::config_path()?;
|
||||||
|
|
||||||
|
if config_path.exists() {
|
||||||
|
println!("Configuration file already exists at: {}", config_path.display());
|
||||||
|
println!("Use 'gitpulse show-config' to view current configuration.");
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
|
||||||
|
if let Some(parent) = config_path.parent() {
|
||||||
|
fs::create_dir_all(parent)
|
||||||
|
.with_context(|| format!("Failed to create config directory: {}", parent.display()))?;
|
||||||
|
}
|
||||||
|
|
||||||
|
let config_content = format!(
|
||||||
|
r#"# GitPulse Configuration
|
||||||
|
# Generated by `gitpulse init`
|
||||||
|
|
||||||
|
[analysis]
|
||||||
|
# Default time period for analysis (e.g., "30 days", "2 weeks", "1 month")
|
||||||
|
default_time_period = "30 days"
|
||||||
|
# Maximum number of contributors to show
|
||||||
|
max_contributors = 50
|
||||||
|
# Include merge commits in analysis
|
||||||
|
include_merges = false
|
||||||
|
# Enable refactoring detection
|
||||||
|
refactoring_detection = true
|
||||||
|
|
||||||
|
[display]
|
||||||
|
# Dashboard theme: "dark", "light", or custom
|
||||||
|
theme = "dark"
|
||||||
|
# Height of charts in dashboard
|
||||||
|
chart_height = 10
|
||||||
|
# Use compact table layout
|
||||||
|
compact_tables = false
|
||||||
|
# Show sparkline charts
|
||||||
|
show_sparklines = true
|
||||||
|
|
||||||
|
[export]
|
||||||
|
# Default export format
|
||||||
|
default_format = "json"
|
||||||
|
# Include timestamps in export
|
||||||
|
include_timestamps = true
|
||||||
|
# Indent JSON output
|
||||||
|
indent_json = true
|
||||||
|
|
||||||
|
[colors]
|
||||||
|
# Color scheme for dashboard
|
||||||
|
primary = "blue"
|
||||||
|
secondary = "green"
|
||||||
|
accent = "yellow"
|
||||||
|
error = "red"
|
||||||
|
background = "black"
|
||||||
|
"#,
|
||||||
|
);
|
||||||
|
|
||||||
|
fs::write(&config_path, config_content)
|
||||||
|
.with_context(|| format!("Failed to write config to: {}", config_path.display()))?;
|
||||||
|
|
||||||
|
println!("Configuration file created at: {}", config_path.display());
|
||||||
|
println!("Edit this file to customize gitpulse behavior.");
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user