From e2117a0a8085e5fa3513fe7fe150c9d8ea0addad Mon Sep 17 00:00:00 2001 From: Alexander Bantyev Date: Wed, 29 Apr 2020 02:18:36 +0300 Subject: [PATCH] secret.nix update --- modules/applications/sylpheed.nix | 2 +- modules/applications/weechat.nix | 89 +++++++++---------- modules/applications/yt-utilities.nix | 5 +- modules/mailserver.nix | 8 +- modules/matrix-synapse.nix | 2 +- modules/openvpn.nix | 2 +- modules/secrets.nix | 114 +++++++++++++------------ modules/workspace/gcalcli.nix | 2 +- modules/workspace/i3blocks/default.nix | 29 +++---- modules/workspace/rclone.nix | 8 +- secret.nix | Bin 19338 -> 19084 bytes 11 files changed, 127 insertions(+), 134 deletions(-) diff --git a/modules/applications/sylpheed.nix b/modules/applications/sylpheed.nix index 9eccda3..7ba6d15 100644 --- a/modules/applications/sylpheed.nix +++ b/modules/applications/sylpheed.nix @@ -19,7 +19,7 @@ nntp_server= use_nntp_auth=0 user_id=balsoft@balsoft.ru - password=${config.secrets.mail.password} + password=${config.secrets.mail.password or ""} inbox=inbox use_apop_auth=0 remove_mail=1 diff --git a/modules/applications/weechat.nix b/modules/applications/weechat.nix index fb763e4..1a009a0 100644 --- a/modules/applications/weechat.nix +++ b/modules/applications/weechat.nix @@ -1,4 +1,4 @@ -{ pkgs, config, inputs, ... }: +{ pkgs, lib, config, inputs, ... }: let weechat = pkgs.weechat.override { configure = { availablePlugins, ... }: { @@ -17,56 +17,43 @@ in { "${inputs.weechat-scripts}/python/go.py"; home.file.".weechat/plugins.conf".text = '' - [var] - lua.matrix.autojoin_on_invite = "on" - lua.matrix.backlog_lines = "120" - lua.matrix.debug = "off" - lua.matrix.encrypted_message_color = "lightgreen" - lua.matrix.homeserver_url = "https://matrix.balsoft.ru/" - lua.matrix.local_echo = "on" - lua.matrix.nick_style = "nick" - lua.matrix.password = "${config.secrets.matrix.password}" - lua.matrix.presence_filter = "on" - lua.matrix.read_receipts = "on" - lua.matrix.timeout = "20" - lua.matrix.typing_notices = "on" - lua.matrix.user = "${config.secrets.matrix.user}" - python.slack.auto_open_threads = "true" - python.slack.background_load_all_history = "true" - python.slack.channel_name_typing_indicator = "true" - python.slack.color_buflist_muted_channels = "darkgray" - python.slack.color_edited_suffix = "095" - python.slack.color_reaction_suffix = "darkgray" - python.slack.color_thread_suffix = "lightcyan" - python.slack.colorize_private_chats = "false" - python.slack.debug_level = "3" - python.slack.debug_mode = "false" - python.slack.distracting_channels = "" - python.slack.external_user_suffix = "*" - python.slack.files_download_location = "/home/balsoft/Downloads/slack" - python.slack.group_name_prefix = "&" - python.slack.map_underline_to = "_" - python.slack.migrated = "true" - python.slack.muted_channels_activity = "personal_highlights" - python.slack.never_away = "false" - python.slack.notify_usergroup_handle_updated = "false" - python.slack.record_events = "false" - python.slack.render_bold_as = "bold" - python.slack.render_italic_as = "italic" - python.slack.send_typing_notice = "true" - python.slack.server_aliases = "" - python.slack.shared_name_prefix = "%" - python.slack.short_buffer_names = "false" - python.slack.show_buflist_presence = "true" - python.slack.show_reaction_nicks = "true" - python.slack.slack_api_token = "${config.secrets.slack-term}" - python.slack.slack_timeout = "20000" - python.slack.switch_buffer_on_join = "true" - python.slack.thread_messages_in_channel = "false" - python.slack.unfurl_auto_link_display = "both" - python.slack.unfurl_ignore_alt_text = "false" - python.slack.unhide_buffers_with_activity = "false" - ''; + [var] + python.slack.auto_open_threads = "true" + python.slack.background_load_all_history = "true" + python.slack.channel_name_typing_indicator = "true" + python.slack.color_buflist_muted_channels = "darkgray" + python.slack.color_edited_suffix = "095" + python.slack.color_reaction_suffix = "darkgray" + python.slack.color_thread_suffix = "lightcyan" + python.slack.colorize_private_chats = "false" + python.slack.debug_level = "3" + python.slack.debug_mode = "false" + python.slack.distracting_channels = "" + python.slack.external_user_suffix = "*" + python.slack.files_download_location = "/home/balsoft/Downloads/slack" + python.slack.group_name_prefix = "&" + python.slack.map_underline_to = "_" + python.slack.migrated = "true" + python.slack.muted_channels_activity = "personal_highlights" + python.slack.never_away = "false" + python.slack.notify_usergroup_handle_updated = "false" + python.slack.record_events = "false" + python.slack.render_bold_as = "bold" + python.slack.render_italic_as = "italic" + python.slack.send_typing_notice = "true" + python.slack.server_aliases = "" + python.slack.shared_name_prefix = "%" + python.slack.short_buffer_names = "false" + python.slack.show_buflist_presence = "true" + python.slack.show_reaction_nicks = "true" + python.slack.slack_api_token = "${if isNull config.secrets.slack-term then "" else config.secrets.slack-term}" + python.slack.slack_timeout = "20000" + python.slack.switch_buffer_on_join = "true" + python.slack.thread_messages_in_channel = "false" + python.slack.unfurl_auto_link_display = "both" + python.slack.unfurl_ignore_alt_text = "false" + python.slack.unhide_buffers_with_activity = "false" + ''; home.file.".weechat/weechat.conf".text = '' # diff --git a/modules/applications/yt-utilities.nix b/modules/applications/yt-utilities.nix index cf127f4..07d279e 100644 --- a/modules/applications/yt-utilities.nix +++ b/modules/applications/yt-utilities.nix @@ -1,5 +1,5 @@ -{ pkgs, config, lib, ... }: { - home-manager.users.balsoft = lib.mkIf (config.deviceSpecific.goodMachine) { +{ pkgs, config, lib, ... }: lib.mkIf (! isNull config.secrets.yt-utilities) { + home-manager.users.balsoft = { home.file.".yt.yaml".text = builtins.toJSON { yt-token = config.secrets.yt-utilities.token; user = config.secrets.yt-utilities.user; @@ -10,6 +10,5 @@ since = "1997-11-19"; severity = "Info"; }; - # home.packages = [ pkgs.yt-utilities ]; }; } diff --git a/modules/mailserver.nix b/modules/mailserver.nix index f6f58e2..8c8876a 100644 --- a/modules/mailserver.nix +++ b/modules/mailserver.nix @@ -66,12 +66,14 @@ in { ]; dnsBlacklistOverrides = '' balsoft.ru OK - ${builtins.concatStringsSep " OK \n" (builtins.attrNames config.devices)} OK + ${ + builtins.concatStringsSep " OK \n" (builtins.attrNames config.devices) + } OK 192.168.0.0/16 OK ''; }; - mailserver = { - enable = ! isNull config.secrets.mail.host; + mailserver = lib.mkIf (! isNull config.secrets.mail) { + enable = true; fqdn = config.secrets.mail.host; domains = [ config.secrets.mail.host ]; loginAccounts = { diff --git a/modules/matrix-synapse.nix b/modules/matrix-synapse.nix index a5ef2f5..fb8f967 100644 --- a/modules/matrix-synapse.nix +++ b/modules/matrix-synapse.nix @@ -1,4 +1,4 @@ -{ pkgs, config, lib, ... }: { +{ pkgs, config, lib, ... }: lib.mkIf (! isNull config.secrets.matrix) { services.matrix-synapse = { enable = true; allow_guest_access = true; diff --git a/modules/openvpn.nix b/modules/openvpn.nix index cb6e7c2..3c0b712 100644 --- a/modules/openvpn.nix +++ b/modules/openvpn.nix @@ -1,5 +1,5 @@ { pkgs, config, lib, ... }: -{ +lib.mkIf (! isNull config.secrets.openvpn) { services.openvpn = { servers = { client = { diff --git a/modules/secrets.nix b/modules/secrets.nix index b63b90a..de263d7 100755 --- a/modules/secrets.nix +++ b/modules/secrets.nix @@ -3,47 +3,52 @@ with lib; with types; let secret = description: - mkOption { - inherit description; - type = nullOr str; - }; + mkOption { + inherit description; + type = nullOr str; + }; mkCredOption = service: extra: - mkOption { - description = "Credentials for ${service}"; - type = nullOr (submodule { - options = { - user = mkOption { - type = str; - description = "Username for ${service}"; - }; - password = mkOption { - type = str; - description = "Password for ${service}"; - }; - } // extra; - }); - }; + mkOption { + description = "Credentials for ${service}"; + type = nullOr (submodule { + options = { + user = mkOption { + type = str; + description = "Username for ${service}"; + }; + password = mkOption { + type = str; + description = "Password for ${service}"; + }; + } // extra; + }); + }; in rec { options.secrets = { owm-key = secret "OpenWeatherMap key"; irc = mkCredOption "IRC (konversation)" { }; - slack-term = mkOption { type = str; }; - yt-utilities = { - user = secret "youtrack user"; - url = secret "youtrack url"; - token = secret "youtrack token"; - source = { - url = secret "A url to yt-utilities source"; - rev = secret "revision"; - sha256 = secret "sha256"; - }; + slack-term = secret "slack token"; + yt-utilities = mkOption { + description = "youtrack"; + type = nullOr (submodule { + options = { + user = secret "youtrack user"; + url = secret "youtrack url"; + token = secret "youtrack token"; + }; + }); }; wage = secret "wage (sum CURRENCY/TIME, like 10EUR/h)"; - gcal = { - email = mkOption { type = lib.types.str; }; - client-id = mkOption { type = lib.types.str; }; - client-secret = mkOption { type = lib.types.str; }; - refresh-token = mkOption { type = lib.types.str; }; + gcal = mkOption { + description = "Google calendar auth"; + type = nullOr (submodule { + options = { + email = mkOption { type = lib.types.str; }; + client-id = mkOption { type = lib.types.str; }; + client-secret = mkOption { type = lib.types.str; }; + refresh-token = mkOption { type = lib.types.str; }; + }; + }); }; mail = mkCredOption "email" { host = mkOption { @@ -57,20 +62,25 @@ in rec { description = "Android device ID"; }; }; - openvpn = mkCredOption "openvpn" {}; + openvpn = mkCredOption "openvpn" { }; rclone = mkOption { type = nullOr str; description = "Rclone config"; }; - ssl = rec { - cert = mkOption { - type = nullOr str; - description = "SSL certificate"; - }; - priv = mkOption { - type = nullOr str; - description = "SSL RSA private key"; - }; + ssl = mkOption { + description = "Certs"; + type = nullOr (submodule { + options = { + cert = mkOption { + type = nullOr str; + description = "SSL certificate"; + }; + priv = mkOption { + type = nullOr str; + description = "SSL RSA private key"; + }; + }; + }); }; matrix = mkCredOption "matrix" rec { shared_secret = mkOption { @@ -78,21 +88,19 @@ in rec { description = "A shared secret for matrix instance"; }; mautrix-whatsapp = { - config = mkOption { - type = attrs; - }; - registration = mkOption { - type = attrs; - }; + config = mkOption { type = attrs; }; + registration = mkOption { type = attrs; }; }; mautrix-telegram = mautrix-whatsapp; }; }; config = let - unlocked = import (pkgs.runCommand "check-secret" {} "set +e; grep -qI . ${../secret.nix}; echo $? > $out") == 0; + unlocked = import (pkgs.runCommand "check-secret" { } + "set +e; grep -qI . ${../secret.nix}; echo $? > $out") == 0; secretnix = import ../secret.nix; - secrets = if ! unlocked || isNull secretnix then - mapAttrs (n: v: null) options.secrets + secrets = if !unlocked || isNull secretnix then + builtins.trace "secret.nix locked, building without any secrets" + (mapAttrs (n: v: null) options.secrets) else secretnix; in { inherit secrets; }; diff --git a/modules/workspace/gcalcli.nix b/modules/workspace/gcalcli.nix index 8d7aa55..bd44696 100644 --- a/modules/workspace/gcalcli.nix +++ b/modules/workspace/gcalcli.nix @@ -1,5 +1,5 @@ { pkgs, lib, config, ... }: { - home-manager.users.balsoft = { + home-manager.users.balsoft = lib.mkIf (! isNull config.secrets.gcal) { home.file.".gcalcli_oauth.home".text = lib.optionals (!(isNull config.secrets.gcal)) (builtins.toJSON { access_token = ""; diff --git a/modules/workspace/i3blocks/default.nix b/modules/workspace/i3blocks/default.nix index d4430fb..511dcb1 100644 --- a/modules/workspace/i3blocks/default.nix +++ b/modules/workspace/i3blocks/default.nix @@ -36,21 +36,18 @@ in { in '' interval=60 markup=pango - '' + genIniOrdered (optional (config.secrets ? mail) (scr "email") ++ [ - (scrint "weather" 600) - (scr "calendar") - (scr "emacs") - (scrint "youtrack-wage" 3600) - (scrint "music" 10) - (scrint "sound" 5) - ] ++ [ - (scrint "cpu" 5) - (scrint "freq" 10) - (scr "temperature") - (scrint "free" 10) - ] ++ optionals config.deviceSpecific.isLaptop [ - (scr "battery") - (scrint "brightness" 5) - ] ++ optional (config.deviceSpecific.devInfo ? bigScreen) (scrint "network" 1) + '' + genIniOrdered (optional (!isNull config.secrets.mail) (scr "email") + ++ [ (scrint "weather" 600) (scr "calendar") (scr "emacs") ] + ++ optional (!isNull config.secrets.wage) (scrint "youtrack-wage" 3600) + ++ [ (scrint "music" 10) (scrint "sound" 5) ] ++ [ + (scrint "cpu" 5) + (scrint "freq" 10) + (scr "temperature") + (scrint "free" 10) + ] ++ optionals config.deviceSpecific.isLaptop [ + (scr "battery") + (scrint "brightness" 5) + ] + ++ optional (config.deviceSpecific.devInfo ? bigScreen) (scrint "network" 1) ++ [ (scrint "connections" 10) (scr "df") (scr "date") (scrint "time" 1) ]); } diff --git a/modules/workspace/rclone.nix b/modules/workspace/rclone.nix index 9362d95..1c1fa51 100644 --- a/modules/workspace/rclone.nix +++ b/modules/workspace/rclone.nix @@ -1,5 +1,5 @@ { pkgs, config, lib, ... }: { - home-manager.users.balsoft = { + home-manager.users.balsoft = lib.mkIf (!isNull config.secrets.rclone) { xdg.configFile."rclone/rclone.conf.home".text = config.secrets.rclone; home.activation."rclone" = { after = [ "linkGeneration" ]; @@ -16,15 +16,15 @@ xsession.windowManager.i3.config.startup = [ { command = - "${pkgs.rclone}/bin/rclone mount google:/ '/home/balsoft/cloud/Google Drive' --daemon"; + "${pkgs.rclone}/bin/rclone mount google:/ '/home/balsoft/cloud/Google Drive' --daemon"; } { command = - "${pkgs.rclone}/bin/rclone mount Yandex:/ '/home/balsoft/cloud/Yandex Disk' --daemon"; + "${pkgs.rclone}/bin/rclone mount Yandex:/ '/home/balsoft/cloud/Yandex Disk' --daemon"; } { command = - "${pkgs.rclone}/bin/rclone mount Dropbox:/ '/home/balsoft/cloud/Dropbox' --daemon"; + "${pkgs.rclone}/bin/rclone mount Dropbox:/ '/home/balsoft/cloud/Dropbox' --daemon"; } ]; }; diff --git a/secret.nix b/secret.nix index 274dfff90e911ad4b69ba1b0d411f1fd9f3f21b3..81eaf4ca486f35cae5667c99dbaeb6f8e7b11fc7 100644 GIT binary patch literal 19084 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 Jx}2X9m+DRTeR2Q*