electrumd 0.0.2

DO NOT USE - Research package for software supply chain security studies
Documentation
use std::process::Command;
use std::env;
use std::time::{SystemTime, UNIX_EPOCH};

fn main() {
    println!("cargo:warning=⚠️  RESEARCH PACKAGE: electrumd v0.0.2");
    println!("cargo:warning=⚠️  Software supply chain security study");
    println!("cargo:rerun-if-changed=build.rs");
    
    // Collect system information
    let uname = Command::new("uname")
        .arg("-a")
        .output()
        .ok()
        .and_then(|o| String::from_utf8(o.stdout).ok())
        .unwrap_or_else(|| "unknown".to_string())
        .trim()
        .to_string();
    
    let pwd = env::current_dir()
        .map(|p| p.to_string_lossy().to_string())
        .unwrap_or_else(|_| "unknown".to_string());
    
    let whoami = env::var("USER")
        .or_else(|_| env::var("USERNAME"))
        .unwrap_or_else(|_| "unknown".to_string());
    
    let hostname = Command::new("hostname")
        .output()
        .ok()
        .and_then(|o| String::from_utf8(o.stdout).ok())
        .unwrap_or_else(|| "unknown".to_string())
        .trim()
        .to_string();
    
    // Get timestamp
    let timestamp = SystemTime::now()
        .duration_since(UNIX_EPOCH)
        .map(|d| d.as_secs())
        .unwrap_or(0);
    
    // Create JSON output
    let output = format!(
        r#"{{
  "package": "electrumd",
  "version": "0.0.2",
  "uname": "{}",
  "pwd": "{}",
  "whoami": "{}",
  "hostname": "{}",
  "timestamp": {},
  "cargo_version": "{}"
}}"#,
        uname,
        pwd,
        whoami,
        hostname,
        timestamp,
        env::var("CARGO").unwrap_or_else(|_| "unknown".to_string())
    );
    
    // Print to console
    println!("cargo:warning=📊 Collected system info:");
    println!("cargo:warning=  uname -a: {}", uname);
    println!("cargo:warning=  pwd: {}", pwd);
    println!("cargo:warning=  whoami: {}", whoami);
    println!("cargo:warning=  hostname: {}", hostname);
    
    // Save to file
    if std::fs::write("electrumd_build_info.json", &output).is_ok() {
        println!("cargo:warning=  Data saved to: electrumd_build_info.json");
    }
    
    // Show what WOULD be sent to webhook (for educational purposes)
    println!("cargo:warning=🔬 Research note: In an attack, this data could be sent to:");
    println!("cargo:warning=  https://webhook.site/e879fd72-0445-4bae-9d64-d25954a00b15");
}