diff options
| author | Maksim Pechnikov <parallel588@gmail.com> | 2020-07-14 07:31:21 +0300 | 
|---|---|---|
| committer | Maksim Pechnikov <parallel588@gmail.com> | 2020-07-14 09:05:34 +0300 | 
| commit | 3062f86613696419f4716a53c3272ceef1b2b119 (patch) | |
| tree | b50b62b0bc879f1c0a9351adbce1f45887a015e9 /lib | |
| parent | 5d215fd81f529b639db9096ca71d4e7f0a6ed386 (diff) | |
| download | pleroma-3062f86613696419f4716a53c3272ceef1b2b119.tar.gz pleroma-3062f86613696419f4716a53c3272ceef1b2b119.zip  | |
added generated  `pleroma.env`
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/mix/tasks/pleroma/release_env.ex | 64 | 
1 files changed, 64 insertions, 0 deletions
diff --git a/lib/mix/tasks/pleroma/release_env.ex b/lib/mix/tasks/pleroma/release_env.ex new file mode 100644 index 000000000..cbbbdeff6 --- /dev/null +++ b/lib/mix/tasks/pleroma/release_env.ex @@ -0,0 +1,64 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Mix.Tasks.Pleroma.ReleaseEnv do +  use Mix.Task +  import Mix.Pleroma + +  @shortdoc "Generate Pleroma environment file." +  @moduledoc File.read!("docs/administration/CLI_tasks/release_environments.md") + +  def run(["gen" | rest]) do +    {options, [], []} = +      OptionParser.parse( +        rest, +        strict: [ +          force: :boolean, +          path: :string +        ], +        aliases: [ +          p: :path, +          f: :force +        ] +      ) + +    env_path = +      get_option( +        options, +        :path, +        "Environment file path", +        "config/pleroma.env" +      ) +      |> Path.expand() + +    proceed? = +      if File.exists?(env_path) do +        get_option( +          options, +          :force, +          "Environment file is exist. Do you want overwritten the #{env_path} file? (y/n)", +          "n" +        ) === "y" +      else +        true +      end + +    if proceed? do +      do_generate(env_path) + +      shell_info( +        "The file generated: #{env_path}.\nTo use the enviroment file need to add the line ';EnvironmentFile=#{ +          env_path +        }' in service file (/installation/pleroma.service)." +      ) +    end +  end + +  def do_generate(path) do +    content = "RELEASE_COOKIE=#{Base.encode32(:crypto.strong_rand_bytes(32))}" + +    File.mkdir_p!(Path.dirname(path)) +    File.write!(path, content) +  end +end  | 
