diff options
author | Roman Chvanikov <chvanikoff@pm.me> | 2021-01-18 11:56:40 +0300 |
---|---|---|
committer | Roman Chvanikov <chvanikoff@pm.me> | 2021-01-18 11:56:40 +0300 |
commit | 2289a1d58777b8ed129e322c3ce4119bc129366c (patch) | |
tree | 693af643bfd94af28c29ec519ef8df0f208d7424 /lib/pleroma/utils.ex | |
parent | dbaa15232bfe4c2bc3e2b1a17cfc7503e7036d77 (diff) | |
parent | 732cc0ce46e8044909dd5205858c43f75fe3e937 (diff) | |
download | pleroma-2289a1d58777b8ed129e322c3ce4119bc129366c.tar.gz |
Merge branch 'develop' into refactor/uploads
Diffstat (limited to 'lib/pleroma/utils.ex')
-rw-r--r-- | lib/pleroma/utils.ex | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/lib/pleroma/utils.ex b/lib/pleroma/utils.ex index e95766223..bc0c95332 100644 --- a/lib/pleroma/utils.ex +++ b/lib/pleroma/utils.ex @@ -1,8 +1,16 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/> +# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/> # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Utils do + @posix_error_codes ~w( + eacces eagain ebadf ebadmsg ebusy edeadlk edeadlock edquot eexist efault + efbig eftype eintr einval eio eisdir eloop emfile emlink emultihop + enametoolong enfile enobufs enodev enolck enolink enoent enomem enospc + enosr enostr enosys enotblk enotdir enotsup enxio eopnotsupp eoverflow + eperm epipe erange erofs espipe esrch estale etxtbsy exdev + )a + def compile_dir(dir) when is_binary(dir) do dir |> File.ls!() @@ -22,7 +30,10 @@ defmodule Pleroma.Utils do """ @spec command_available?(String.t()) :: boolean() def command_available?(command) do - match?({_output, 0}, System.cmd("sh", ["-c", "command -v #{command}"])) + case :os.find_executable(String.to_charlist(command)) do + false -> false + _ -> true + end end @doc "creates the uniq temporary directory" @@ -44,4 +55,12 @@ defmodule Pleroma.Utils do error -> error end end + + @spec posix_error_message(atom()) :: binary() + def posix_error_message(code) when code in @posix_error_codes do + error_message = Gettext.dgettext(Pleroma.Web.Gettext, "posix_errors", "#{code}") + "(POSIX error: #{error_message})" + end + + def posix_error_message(_), do: "" end |