Class: Everywhere::Commands::Install

Inherits:
Dry::CLI::Command
  • Object
show all
Defined in:
lib/everywhere/commands/install.rb

Overview

Prepare an existing app for packaged desktop life. Idempotent: skips anything already in place.

Instance Method Summary collapse

Instance Method Details

#call(root: ".", local: false, agents: false) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/everywhere/commands/install.rb', line 20

def call(root: ".", local: false, agents: false, **)
  @mode = local ? "local" : "remote"
  @framework = Framework.detect(root)
  @root = @framework.root
  UI.step("#{UI.bold(@framework.name)} app at #{@root}")
  UI.warn("local mode: only SQLite databases are supported") if local

  # Common to every framework.
  add_gem
  write_config
  write_boot_stub

  # Framework-specific config surgery.
  send("install_#{@framework.name}")

  if agents
    write_agents_guide
    write_claude_pointer
  else
    UI.step(UI.dim("tip: `every install --agents` writes an AGENTS.md guide for AI coding agents"))
  end

  UI.success("installed — run `every dev` to open the app, `every build` to package it")
end