summaryrefslogtreecommitdiff
path: root/config/mpv/scripts/subs2srsa/platform/nix.lua
diff options
context:
space:
mode:
Diffstat (limited to 'config/mpv/scripts/subs2srsa/platform/nix.lua')
-rw-r--r--config/mpv/scripts/subs2srsa/platform/nix.lua49
1 files changed, 49 insertions, 0 deletions
diff --git a/config/mpv/scripts/subs2srsa/platform/nix.lua b/config/mpv/scripts/subs2srsa/platform/nix.lua
new file mode 100644
index 0000000..cbf6c85
--- /dev/null
+++ b/config/mpv/scripts/subs2srsa/platform/nix.lua
@@ -0,0 +1,49 @@
+--[[
+Copyright: Ren Tatsumoto and contributors
+License: GNU GPL, version 3 or later; http://www.gnu.org/licenses/gpl.html
+
+Platform-specific functions for *nix systems.
+]]
+
+local h = require('helpers')
+local self = { healthy = true, clip_util = "", clip_cmd = "", }
+
+if h.is_mac() then
+ self.clip_util = "pbcopy"
+ self.clip_cmd = "LANG=en_US.UTF-8 " .. self.clip_util
+elseif h.is_wayland() then
+ local function is_wl_copy_installed()
+ local handle = h.subprocess { 'wl-copy', '--version' }
+ return handle.status == 0 and handle.stdout:match("wl%-clipboard") ~= nil
+ end
+
+ self.clip_util = "wl-copy"
+ self.clip_cmd = self.clip_util
+ self.healthy = is_wl_copy_installed()
+else
+ local function is_xclip_installed()
+ local handle = h.subprocess { 'xclip', '-version' }
+ return handle.status == 0 and handle.stderr:match("xclip version") ~= nil
+ end
+
+ self.clip_util = "xclip"
+ self.clip_cmd = self.clip_util .. " -i -selection clipboard"
+ self.healthy = is_xclip_installed()
+end
+
+self.tmp_dir = function()
+ return os.getenv("TMPDIR") or '/tmp'
+end
+
+self.copy_to_clipboard = function(text)
+ local handle = io.popen(self.clip_cmd, 'w')
+ handle:write(text)
+ handle:close()
+end
+
+self.curl_request = function(url, request_json, completion_fn)
+ local args = { 'curl', '-s', url, '-X', 'POST', '-d', request_json }
+ return h.subprocess(args, completion_fn)
+end
+
+return self