aboutsummaryrefslogtreecommitdiff
path: root/shard/lib
diff options
context:
space:
mode:
Diffstat (limited to 'shard/lib')
-rw-r--r--shard/lib/cli/cli.ex19
1 files changed, 19 insertions, 0 deletions
diff --git a/shard/lib/cli/cli.ex b/shard/lib/cli/cli.ex
index d454a0b..380282d 100644
--- a/shard/lib/cli/cli.ex
+++ b/shard/lib/cli/cli.ex
@@ -170,6 +170,25 @@ defmodule SCLI do
state
end
+ defp handle_command(state, ["send_file", path]) do
+ {mime_type, 0} = System.cmd("file", ["-b", "--mime-type", path])
+ mime_type = String.trim mime_type
+ IO.puts("Guessed mime type: #{mime_type}")
+ handle_command(state, ["send_file", path, mime_type])
+ end
+
+ defp handle_command(state, ["send_file", path, mime_type]) do
+ if state.room_pid != nil do
+ {:ok, m, _} = SApp.File.create(path, mime_type)
+ uri = ShardURI.from_manifest(m)
+ IO.puts("sending URI: #{uri}")
+ SApp.Chat.chat_send(state.room_pid, state.pk, uri)
+ else
+ IO.puts("Not in a chat room!")
+ end
+ state
+ end
+
defp handle_command(state, _cmd) do
IO.puts "Invalid command"
state