Packages
mob_dev
0.6.17
0.6.23
0.6.22
0.6.21
0.6.20
0.6.19
0.6.18
0.6.17
0.6.16
0.6.15
0.6.14
0.6.13
0.6.12
0.6.11
0.6.10
0.6.9
0.6.8
0.6.7
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.17
0.5.16
0.5.15
0.5.14
0.5.13
0.5.12
0.5.11
0.5.10
0.5.9
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.0
0.3.37
0.3.35
0.3.34
0.3.33
0.3.28
0.3.26
0.3.23
0.3.21
0.3.19
0.3.18
0.3.17
0.3.16
0.3.15
0.3.14
0.3.13
0.3.12
0.3.11
0.3.10
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.18
0.2.17
0.2.15
0.2.14
0.2.13
0.2.12
0.2.11
0.2.10
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.0
Development tooling for the Mob mobile framework
Current section
Files
Jump to
Current section
Files
lib/mix/tasks/mob.styles.ex
defmodule Mix.Tasks.Mob.Styles do
@shortdoc "List the project's style packages and the active default"
@moduledoc """
Lists the activated style packages (MOB_STYLES.md, tokens-only tier) with
their themes and which one `config :mob, :default_style` selects.
mix mob.styles
"""
use Mix.Task
@impl Mix.Task
def run(_args) do
Mix.Task.run("app.config")
styles = MobDev.Style.activated()
default = MobDev.Style.default_style()
if styles == [] do
Mix.shell().info("""
No style packages activated. The app renders mob's neutral baseline
(or its own `use Mob.App, theme:`). Activate one in mob.exs:
config :mob, :styles, [:mob_themes]
config :mob, :default_style, :mob_themes
""")
else
Mix.shell().info("\n STYLE THEME DEFAULT")
Mix.shell().info(" " <> String.duplicate("─", 60))
for {dir, manifest} <- styles do
case MobDev.Style.validate(manifest) do
{:ok, m} ->
marker = if m.name == default, do: " ← default", else: ""
Mix.shell().info(
" #{String.pad_trailing(to_string(m.name), 18)}#{String.pad_trailing(inspect(m.theme), 28)}#{marker}"
)
{:error, errs} ->
Mix.shell().error(" #{Path.basename(dir)}: INVALID — #{Enum.join(errs, "; ")}")
end
end
if default != nil and not Enum.any?(styles, fn {_d, m} -> m[:name] == default end) do
Mix.shell().error(
"\n ✗ :default_style #{inspect(default)} is not among the activated styles (build will fail)"
)
end
Mix.shell().info("")
end
end
end