Changed config.rkt to simple-ini.
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
#lang racket/base
|
||||
|
||||
(require racket/file
|
||||
racket/path
|
||||
simple-ini
|
||||
"util.rkt")
|
||||
|
||||
(provide manager-ini-file
|
||||
manager-state-file
|
||||
ensure-default-manager-ini!
|
||||
load-manager-ini
|
||||
ini-ref/bool
|
||||
ini-ref/int
|
||||
ini-ref/string
|
||||
ini-ref/path
|
||||
ini-ref/addresses)
|
||||
|
||||
(define (manager-ini-file base-dir*)
|
||||
(build-path (filesystem-path base-dir*) ".flac-48khz-manager.ini"))
|
||||
|
||||
(define (manager-state-file base-dir*)
|
||||
(build-path (filesystem-path base-dir*) ".music-info.db"))
|
||||
|
||||
(define (ensure-default-manager-ini! ini-file)
|
||||
(unless (file-exists? ini-file)
|
||||
(define ini (make-ini))
|
||||
(ini-set! ini 'manager 'max-sample-rate 48000)
|
||||
(ini-set! ini 'manager 'hash-algorithm "sha256")
|
||||
(ini-set! ini 'manager 'change-detection "flac-taglib")
|
||||
(ini-set! ini 'manager 'dry-run #f)
|
||||
(ini-set! ini 'manager 'display-log #t)
|
||||
(ini-set! ini 'manager 'log-file ".flac-48khz-manager.log")
|
||||
(ini-set! ini 'manager 'compression-level 5)
|
||||
(ini-set! ini 'opus-manager 'log-file ".flac2opus-manager.log")
|
||||
(ini-set! ini 'mail 'enabled #f)
|
||||
(ini-set! ini 'mail 'send-on-success #f)
|
||||
(ini-set! ini 'mail 'send-on-error #t)
|
||||
(ini-set! ini 'mail 'host "")
|
||||
(ini-set! ini 'mail 'port 25)
|
||||
(ini-set! ini 'mail 'tls #f)
|
||||
(ini-set! ini 'mail 'username "")
|
||||
(ini-set! ini 'mail 'password "")
|
||||
(ini-set! ini 'mail 'from "")
|
||||
(ini-set! ini 'mail 'to "")
|
||||
(ini-set! ini 'mail 'cc "")
|
||||
(ini-set! ini 'mail 'bcc "")
|
||||
(ini-set! ini 'mail 'subject-prefix "[flac-48khz-manager]")
|
||||
(ini->file ini ini-file)))
|
||||
|
||||
(define (load-manager-ini base-dir*)
|
||||
(define ini-file (manager-ini-file base-dir*))
|
||||
(ensure-default-manager-ini! ini-file)
|
||||
(file->ini ini-file))
|
||||
|
||||
(define (ini-ref/bool ini section key default)
|
||||
(bool-value (ini-get ini section key default) default))
|
||||
|
||||
(define (ini-ref/int ini section key default)
|
||||
(int-value (ini-get ini section key default) default))
|
||||
|
||||
(define (ini-ref/string ini section key default)
|
||||
(string-value (ini-get ini section key default) default))
|
||||
|
||||
(define (resolve-ini-path base-dir v default)
|
||||
(define p (string-value v default))
|
||||
(cond [(path-string? p)
|
||||
(define bp (string->path p))
|
||||
(if (absolute-path? bp) bp (build-path base-dir bp))]
|
||||
[else (build-path base-dir default)]))
|
||||
|
||||
(define (ini-ref/path ini base-dir section key default)
|
||||
(resolve-ini-path (filesystem-path base-dir)
|
||||
(ini-get ini section key default)
|
||||
default))
|
||||
|
||||
(define (ini-ref/addresses ini section key default)
|
||||
(split-addresses (ini-get ini section key default)))
|
||||
Reference in New Issue
Block a user