flameshot-once: add imgur support
This commit is contained in:
parent
b6c670fea4
commit
66a3597034
@ -48,7 +48,9 @@ let
|
|||||||
"SAVE"
|
"SAVE"
|
||||||
"EXIT"
|
"EXIT"
|
||||||
"BLUR"
|
"BLUR"
|
||||||
];
|
]
|
||||||
|
++ optional cfg.imgur.enable "IMAGEUPLOADER"
|
||||||
|
;
|
||||||
type = types.listOf (types.enum (attrNames ButtonType));
|
type = types.listOf (types.enum (attrNames ButtonType));
|
||||||
};
|
};
|
||||||
disabledTrayIcon = mkOption {
|
disabledTrayIcon = mkOption {
|
||||||
@ -65,6 +67,44 @@ let
|
|||||||
# This is types.filename extended by [%:][%:+]*
|
# This is types.filename extended by [%:][%:+]*
|
||||||
types.addCheck types.str (test "[%:0-9A-Za-z._][%:+0-9A-Za-z._-]*");
|
types.addCheck types.str (test "[%:0-9A-Za-z._][%:+0-9A-Za-z._-]*");
|
||||||
};
|
};
|
||||||
|
imgur = mkOption {
|
||||||
|
default = {};
|
||||||
|
type = types.submodule {
|
||||||
|
options = {
|
||||||
|
enable = mkEnableOption "imgur";
|
||||||
|
createUrl = mkOption {
|
||||||
|
example = "http://p.r/image";
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
deleteUrl = mkOption {
|
||||||
|
example = "http://p.r/image/delete/%1";
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
xdg-open = mkOption {
|
||||||
|
default = {};
|
||||||
|
type = types.submodule {
|
||||||
|
options = {
|
||||||
|
enable = mkEnableOption "imgur.xdg-open" // {
|
||||||
|
default = true;
|
||||||
|
};
|
||||||
|
browser = mkOption {
|
||||||
|
default = "${pkgs.coreutils}/bin/false";
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
createPrefix = mkOption {
|
||||||
|
default = cfg.imgur.createUrl;
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
deletePrefix = mkOption {
|
||||||
|
default = removeSuffix "/%1" cfg.imgur.deleteUrl;
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
savePath = mkOption {
|
savePath = mkOption {
|
||||||
default = "/tmp";
|
default = "/tmp";
|
||||||
type = types.absolute-pathname;
|
type = types.absolute-pathname;
|
||||||
@ -135,4 +175,30 @@ in
|
|||||||
export FLAMESHOT_CAPTURE_PATH=${cfg.savePath}
|
export FLAMESHOT_CAPTURE_PATH=${cfg.savePath}
|
||||||
export FLAMESHOT_ONCE_TIMEOUT=${toString cfg.timeout}
|
export FLAMESHOT_ONCE_TIMEOUT=${toString cfg.timeout}
|
||||||
export XDG_CONFIG_HOME=${XDG_CONFIG_HOME}
|
export XDG_CONFIG_HOME=${XDG_CONFIG_HOME}
|
||||||
|
${optionalString cfg.imgur.enable /* sh */ ''
|
||||||
|
export IMGUR_CREATE_URL=${shell.escape cfg.imgur.createUrl}
|
||||||
|
export IMGUR_DELETE_URL=${shell.escape cfg.imgur.deleteUrl}
|
||||||
|
${optionalString cfg.imgur.xdg-open.enable /* sh */ ''
|
||||||
|
PATH=$PATH:${makeBinPath [
|
||||||
|
(pkgs.writeDashBin "xdg-open" ''
|
||||||
|
set -efu
|
||||||
|
uri=$1
|
||||||
|
prefix=$(${pkgs.coreutils}/bin/dirname "$uri")
|
||||||
|
case $prefix in
|
||||||
|
(${shell.escape cfg.imgur.xdg-open.createPrefix})
|
||||||
|
echo "opening image in browser: $uri" >&2
|
||||||
|
exec ${config.imgur.xdg-open.browser} "$uri"
|
||||||
|
;;
|
||||||
|
(${shell.escape cfg.imgur.xdg-open.deletePrefix})
|
||||||
|
echo "deleting image: $uri" >&2
|
||||||
|
exec ${pkgs.curl}/bin/curl -fsS -X DELETE "$uri"
|
||||||
|
;;
|
||||||
|
(*)
|
||||||
|
echo "don't know how to open URI: $uri" >&2
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
'')
|
||||||
|
]}
|
||||||
|
''}
|
||||||
|
''}
|
||||||
''
|
''
|
||||||
|
Loading…
Reference in New Issue
Block a user