[Credo][CI] Add readability as it’s fixed
[akkoma] / lib / mix / tasks / pleroma / uploads.ex
index 0783a0cccff3d3b6e62c7815fa49afa3c8c5d1f8..106fcf443fbf6a0e881e2904a350edebdc8da51d 100644 (file)
@@ -1,18 +1,27 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
 defmodule Mix.Tasks.Pleroma.Uploads do
   use Mix.Task
-  import Mix.Ecto
-  alias Pleroma.{Upload, Uploaders.Local, Uploaders.S3}
   alias Mix.Tasks.Pleroma.Common
+  alias Pleroma.Upload
+  alias Pleroma.Uploaders.Local
   require Logger
 
   @log_every 50
-  @shortdoc "Migrate uploads from local to remote storage"
-  @longdioc """
+
+  @shortdoc "Migrates uploads from local to remote storage"
+  @moduledoc """
    Manages uploads
+
    ## Migrate uploads from local to remote storage
+       mix pleroma.uploads migrate_local TARGET_UPLOADER [OPTIONS...]
+   Options:
+   - `--delete` - delete local uploads after migrating them to the target uploader
 
+   A list of available uploaders can be seen in config.exs
   """
-
   def run(["migrate_local", target_uploader | args]) do
     delete? = Enum.member?(args, "--delete")
     Common.start_pleroma()
@@ -59,7 +68,7 @@ defmodule Mix.Tasks.Pleroma.Uploads do
 
           File.exists?(root_path) ->
             file = Path.basename(id)
-            [hash, ext] = String.split(id, ".")
+            hash = Path.rootname(id)
             {%Pleroma.Upload{id: hash, name: file, path: file, tempfile: root_path}, root_path}
 
           true ->
@@ -87,6 +96,7 @@ defmodule Mix.Tasks.Pleroma.Uploads do
       timeout: 150_000
     )
     |> Stream.chunk_every(@log_every)
+    # credo:disable-for-next-line Credo.Check.Warning.UnusedEnumOperation
     |> Enum.reduce(0, fn done, count ->
       count = count + length(done)
       Mix.shell().info("Uploaded #{count}/#{total_count} files")