From c8123c155b237e6717a500923376918bb0a4c38a Mon Sep 17 00:00:00 2001
From: Patrick Spek
Date: Mon, 9 Mar 2020 12:48:12 +0100
Subject: Add Mutt configuration
---
.local/lib/perl5/App/Localmail.pm | 54 +++++++++++++++++++++++++++++++++++++++
1 file changed, 54 insertions(+)
create mode 100644 .local/lib/perl5/App/Localmail.pm
(limited to '.local/lib/perl5/App/Localmail.pm')
diff --git a/.local/lib/perl5/App/Localmail.pm b/.local/lib/perl5/App/Localmail.pm
new file mode 100644
index 0000000..db39fae
--- /dev/null
+++ b/.local/lib/perl5/App/Localmail.pm
@@ -0,0 +1,54 @@
+#!/usr/bin/env false
+
+use v5.20;
+use feature qw/say signatures/;
+use strict;
+use utf8;
+use warnings;
+
+use YAML::XS;
+use File::Basename;
+use File::Slurp;
+
+package App::Localmail;
+
+sub base_config () {
+ my $config_dir = "$ENV{HOME}/.config/localmail";
+ my $config = {};
+
+ # Load main configuration
+ $config->{localmail} = YAML::XS::Load(File::Slurp::read_file("$config_dir/config.yaml"));
+
+ # Load account configurations
+ for (glob("$config_dir/accounts/*.yaml")) {
+ my ($name, $path, $suffix) = File::Basename::fileparse($_, ('.yaml'));
+ my $yaml = File::Slurp::read_file($_);
+
+ $config->{accounts}->{$name} = YAML::XS::Load($yaml);
+ }
+
+ $config->{localmail}{maildir} //= "$ENV{HOME}/.maildir";
+
+ $config;
+}
+
+sub config_passwords ($config) {
+ # Get passwords where necessary
+ for (keys %{$config->{accounts}}) {
+ if (!defined($config->{accounts}{$_}{incoming}{password}{plain})) {
+ my $file = $config->{accounts}{$_}{incoming}{password}{file};
+ chomp (my $password = qx/gpg -d "$file" | head -n 1/);
+
+ $config->{accounts}{$_}{incoming}{password}{plain} = $password;
+ }
+
+ if (!defined($config->{accounts}{$_}{outgoing}{password}{plain})) {
+ my $file = $config->{accounts}{$_}{outgoing}{password}{file};
+ chomp (my $password = qx/gpg -d "$file" | head -n 1/);
+
+ $config->{accounts}{$_}{outgoing}{password}{plain} = $password;
+ }
+ }
+}
+
+1;
--
cgit v1.1