diff options
Diffstat (limited to 'mmm.rb')
-rw-r--r-- | mmm.rb | 49 |
1 files changed, 49 insertions, 0 deletions
@@ -0,0 +1,49 @@ +require 'yaml' +require 'optparse' + +require './mbsync' +require './mutt' +require './msmtp' + +options = { + config: '~/.config/mmm/config.yaml', + write: false +} + +OptionParser.new do |opts| + opts.on '-w', '--write', 'Write configs to disk. Otherwise, just outputs to stdout.' + opts.on '-cCONFIG', '--config CONFIG', 'Specify configuration file, defaults to ~/.config/mmm/config.' +end.parse!(into: options) + +config = YAML.load File.read(File.expand_path options[:config]) + +def write_mbsync_config config, options + mbsync_config = make_mbsync_config config + (options[:write] ? File.open(File.expand_path(config['mbsyncrc']), 'w') : $stdout).puts mbsync_config +end + +def write_msmtp_config config, options + preamble = msmtprc_preamble + io = (options[:write] ? File.open(File.expand_path(config['msmtprc']), 'w') : $stdout) + io.puts preamble + io.puts + msmtp_config = make_msmtp_config config + io.puts msmtp_config +end + +def write_mutt_configs config, options + mutt_configs = make_mutt_configs config + profiles_directory = File.expand_path(config['neomutt_profiles_directory']) + mutt_configs.each do |account, account_config| + path = File.join(profiles_directory, "#{account}.neomuttrc") + (options[:write] ? File.open(path, 'w') : $stdout).puts account_config + end + + mmmrc = make_mmm_muttrc config + mmmrc_path = File.join(File.expand_path(config['neomutt_config_dir']), "mmm.neomuttrc") + (options[:write] ? File.open(mmmrc_path, 'w') : $stdout).puts mmmrc +end + +write_mbsync_config config, options +write_msmtp_config config, options +write_mutt_configs config, options |