Packages
verk
0.11.1
1.7.3
1.7.2
1.7.1
1.7.0
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.0
1.4.1
1.4.0
1.3.0
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.1
1.1.0
1.0.2
1.0.1
1.0.0
0.14.1
0.14.0
0.13.6
0.13.5
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.1
0.11.0
0.10.0
0.9.13
0.9.12
0.9.11
0.9.10
0.9.9
0.9.8
0.9.7
0.9.6
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
Verk is a job processing system backed by Redis.
Current section
Files
Jump to
Current section
Files
lib/verk/scripts.ex
defmodule Verk.Scripts do
@moduledoc """
Provides helpers to load lua scripts into redis and calculate sha1
"""
@spec load(pid) :: :ok
def load(redis) do
dir = :code.priv_dir(:verk)
for file <- File.ls!(dir),
path = Path.join(dir, file),
script = File.read!(path) do
Redix.command!(redis, ["SCRIPT", "LOAD", script])
end
:ok
end
@spec sha(binary) :: binary
def sha(script_name) do
script = Path.join(:code.priv_dir(:verk), "#{script_name}.lua")
hash_sha = :crypto.hash(:sha, File.read!(script))
Base.encode16(hash_sha, case: :lower)
end
end