Current section

Files

Jump to
nerves lib nerves utils.ex
Raw

lib/nerves/utils.ex

# SPDX-FileCopyrightText: 2017 Justin Schneck
# SPDX-FileCopyrightText: 2022 Frank Hunleth
# SPDX-FileCopyrightText: 2022 Jon Carstens
#
# SPDX-License-Identifier: Apache-2.0
#
defmodule Nerves.Utils do
@moduledoc false
@alphanum ~c"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_"
if Application.compile_env(:nerves, :json_codec) do
IO.warn(":json_codec is no longer supported. Please remove from your config", [])
end
<<i1::32-unsigned-integer, i2::32-unsigned-integer, i3::32-unsigned-integer>> =
:crypto.strong_rand_bytes(12)
:rand.seed(:exsplus, {i1, i2, i3})
@spec random_alpha_num(non_neg_integer()) :: String.t()
def random_alpha_num(length) do
Enum.take_random(@alphanum, length)
|> to_string()
end
end