Current section
Files
Jump to
Current section
Files
lib/mix/tasks/terminator.create.role.ex
# defmodule Mix.Tasks.Terminator.Create.Role do
# use Mix.Task
# alias Terminator.Role
# alias Terminator.Repo
# @shortdoc "Create new role"
# # @opts [strict: [name: :string, abilities: [:string, :keep]], aliases: [n: :name]]
# def run(argv) do
# Application.ensure_all_started(:terminator)
# %{args: args} =
# Optimus.new!(
# name: "terminator.create.role",
# args: [
# role: [
# value_name: "role_identifier",
# help: "Role identifier (:atom)",
# required: true,
# parser: :string
# ],
# name: [
# value_name: "role_name",
# help: "Role human name (:string)",
# required: true,
# parser: :string
# ],
# abilities: [
# value_name: "abilities",
# help: "Role abilities (:string,:string)",
# required: true,
# parser: :string
# ]
# ]
# )
# |> Optimus.parse!(argv)
# args = Map.put(args, :abilities, String.split(args.abilities, ","))
# create_role(args)
# end
# defp create_role(%{abilities: abilities, name: name, role: role}) do
# changeset =
# Role.changeset(%Role{}, %{
# identifier: role,
# name: name,
# abilities: abilities
# })
# result = Repo.insert(changeset)
# case result do
# {:ok, _} ->
# IO.puts("Role created")
# {:error, error} ->
# IO.puts("Error while creating role")
# IO.inspect(error.errors)
# end
# end
# end