Class: BooticCli::Commands::Themes

Inherits:
BooticCli::Command show all
Defined in:
lib/bootic_cli/commands/themes.rb

Defined Under Namespace

Classes: Prompt

Constant Summary

Constants included from BooticCli::Connectivity

BooticCli::Connectivity::DEFAULT_ENV

Instance Method Summary collapse

Methods inherited from BooticCli::Command

declare, #help

Instance Method Details

#clone(dir = nil) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/bootic_cli/commands/themes.rb', line 18

def clone(dir = nil)
  logged_in_action do
    local_theme, remote_theme = theme_selector.setup_theme_pair(options['shop'], dir, options['public'], options['dev'])

    if File.exist?(local_theme.path)
      prompt.say "Directory already exists! (#{local_theme.path})", :red
    else
      prompt.say "Cloning theme files into #{local_theme.path}"
      workflows.pull(local_theme, remote_theme)
      local_theme.write_subdomain
    end
  end
end

#compareObject



65
66
67
68
69
70
# File 'lib/bootic_cli/commands/themes.rb', line 65

def compare
  within_theme do
    local_theme, remote_theme = theme_selector.select_theme_pair(default_subdomain, current_dir, options['public'])
    workflows.compare(local_theme, remote_theme)
  end
end

#openObject



92
93
94
95
96
97
# File 'lib/bootic_cli/commands/themes.rb', line 92

def open
  within_theme do
    _, remote_theme = theme_selector.select_theme_pair(default_subdomain, current_dir, options['public'])
    Launchy.open remote_theme.path
  end
end

#pairObject



101
102
103
104
105
106
# File 'lib/bootic_cli/commands/themes.rb', line 101

def pair
  within_theme do
    local_theme = theme_selector.pair(options['shop'], current_dir)
    prompt.say "Directory #{local_theme.path} paired with shop #{options['shop']}", :green
  end
end

#publishObject



83
84
85
86
87
88
# File 'lib/bootic_cli/commands/themes.rb', line 83

def publish
  within_theme do
    local_theme, remote_theme = theme_selector.select_theme_pair(default_subdomain, current_dir, false)
    workflows.publish(local_theme, remote_theme)
  end
end

#pullObject



35
36
37
38
39
40
# File 'lib/bootic_cli/commands/themes.rb', line 35

def pull
  within_theme do
    local_theme, remote_theme = theme_selector.select_theme_pair(default_subdomain, current_dir, options['public'])
    workflows.pull(local_theme, remote_theme, delete: options['delete'] || true)
  end
end

#pushObject



45
46
47
48
49
50
51
# File 'lib/bootic_cli/commands/themes.rb', line 45

def push
  within_theme do
    local_theme, remote_theme = theme_selector.select_theme_pair(default_subdomain, current_dir, options['public'])
    warn_user if remote_theme.public? and options['public'].nil?
    workflows.push(local_theme, remote_theme, delete: options['delete'] || true)
  end
end

#syncObject



55
56
57
58
59
60
61
# File 'lib/bootic_cli/commands/themes.rb', line 55

def sync
  within_theme do
    local_theme, remote_theme = theme_selector.select_theme_pair(default_subdomain, current_dir, options['public'])
    warn_user if remote_theme.public? and options['public'].nil?
    workflows.sync(local_theme, remote_theme)
  end
end

#watchObject



74
75
76
77
78
79
80
# File 'lib/bootic_cli/commands/themes.rb', line 74

def watch
  within_theme do
    _, remote_theme = theme_selector.select_theme_pair(default_subdomain, current_dir, options['public'])
    warn_user if remote_theme.public? and options['public'].nil?
    workflows.watch(current_dir, remote_theme)
  end
end