Skip to content

AdamBien/zcfg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

zcfg

Zero Dependency Configuration Utility

A one-class configuration loader for Java applications that reads standard Java properties files from global user directory, local project directory, and system properties with defined precedence rules. No external dependencies required.

Duke Configurator

Usage

// Initialize once at application startup
ZCfg.load("myapp");

// Access configuration values with defaults
var port = ZCfg.integer("server.port", 8080);
var debug = ZCfg.bool("debug.enabled", false);
var dbUrl = ZCfg.string("db.url", "localhost:5432");

// Comma-separated values as list
var hosts = ZCfg.strings("cluster.hosts");
// e.g. "a,b,c" -> ["a", "b", "c"]

Configuration Loading Order

ZCfg.load("myapp") merges properties from three sources, each overwriting the previous:

  1. $HOME/.myapp/app.properties - Global user configuration (user.home system property)
  2. ./app.properties - Local project configuration (current working directory)
  3. System properties via -D flags, e.g., -Dserver.port=9090

Scaffolding

zcfgCreate creates empty configuration files for an application:

zcfgCreate myapp
# Created /Users/you/.myapp/app.properties
# Created ./app.properties

Install: cp zcfgCreate /usr/local/bin/

Properties Format

Uses standard Java properties format:

# Database configuration
db.url=localhost:5432
db.username=admin
db.timeout=30

# Server settings
server.port=8080
debug.enabled=true

# List values (comma-separated)
cluster.hosts=host1,host2,host3

About

Zero Dependency Configuration Utility

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages