2015-07-13 13:56:53 +00:00
|
|
|
{ config, lib, pkgs, ... }:
|
|
|
|
|
|
|
|
with lib;
|
|
|
|
|
|
|
|
let
|
|
|
|
|
|
|
|
cfg = config.services.heyefi;
|
|
|
|
in
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
###### interface
|
|
|
|
|
|
|
|
options = {
|
|
|
|
|
|
|
|
services.heyefi = {
|
|
|
|
|
2015-07-14 13:54:51 +00:00
|
|
|
enable = mkEnableOption "heyefi";
|
|
|
|
|
2015-07-13 13:56:53 +00:00
|
|
|
cardMacaddress = mkOption {
|
|
|
|
default = "";
|
|
|
|
description = ''
|
|
|
|
An Eye-Fi card MAC address.
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
uploadKey = mkOption {
|
|
|
|
default = "";
|
|
|
|
description = ''
|
|
|
|
An Eye-Fi card's upload key.
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
uploadDir = mkOption {
|
2015-07-14 13:56:30 +00:00
|
|
|
example = "/home/username/pictures";
|
2015-07-13 13:56:53 +00:00
|
|
|
description = ''
|
|
|
|
The directory to upload the files to.
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
user = mkOption {
|
|
|
|
default = "root";
|
|
|
|
description = ''
|
|
|
|
heyefi will be run under this user (user must exist,
|
|
|
|
this can be your user name).
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
###### implementation
|
|
|
|
|
|
|
|
config = mkIf cfg.enable {
|
|
|
|
|
|
|
|
systemd.services.heyefi =
|
|
|
|
{
|
|
|
|
description = "heyefi service";
|
|
|
|
after = [ "network.target" ];
|
|
|
|
wantedBy = [ "multi-user.target" ];
|
|
|
|
serviceConfig = {
|
|
|
|
User = "${cfg.user}";
|
|
|
|
Restart = "always";
|
|
|
|
ExecStart = "${pkgs.heyefi}/bin/heyefi";
|
|
|
|
};
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
environment.etc."heyefi/heyefi.config".text =
|
|
|
|
''
|
|
|
|
# /etc/heyefi/heyefi.conf: DO NOT EDIT -- this file has been generated automatically.
|
|
|
|
cards = [["${config.services.heyefi.cardMacaddress}","${config.services.heyefi.uploadKey}"]]
|
|
|
|
upload_dir = "${toString config.services.heyefi.uploadDir}"
|
|
|
|
'';
|
|
|
|
|
|
|
|
environment.systemPackages = [ pkgs.heyefi ];
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|