summaryrefslogtreecommitdiff
path: root/chef-utils/lib/chef-utils/dist.rb
blob: eb9bb5a881bf951272dda438a37a994740b53e5c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# frozen_string_literal: true
module ChefUtils
  # This class is not fully implemented, depending on it is not recommended!
  module Dist
    class Apply
      # The chef-apply product name
      PRODUCT = "Chef Infra Apply"

      # The chef-apply binary
      EXEC = "chef-apply"
    end

    class Automate
      # name of the automate product
      PRODUCT = "Chef Automate"
    end

    class Cli
      # the chef-cli product name
      PRODUCT = "Chef CLI"

      # the chef-cli gem
      GEM = "chef-cli"
    end

    class Habitat
      # name of the Habitat product
      PRODUCT = "Chef Habitat"

      # A short designation for the product
      SHORT = "habitat"

      # The hab cli binary
      EXEC = "hab"
    end

    class Infra
      # When referencing a product directly, like Chef (Now Chef Infra)
      PRODUCT = "Chef Infra Client"

      # A short designation for the product, used in Windows event logs
      # and some nomenclature.
      SHORT = "chef"

      # The client's alias (chef-client)
      CLIENT = "chef-client"

      # The chef executable, as in `chef gem install` or `chef generate cookbook`
      EXEC = "chef"

      # The chef-shell executable
      SHELL = "chef-shell"

      # Configuration related constants
      # The chef-shell configuration file
      SHELL_CONF = "chef_shell.rb"

      # The user's configuration directory
      USER_CONF_DIR = ".chef"

      # The suffix for Chef's /etc/chef, /var/chef and C:\\Chef directories
      # "chef" => /etc/cinc, /var/cinc, C:\\cinc
      DIR_SUFFIX = "chef"

      # The client's gem
      GEM = "chef"
    end

    class Inspec
      # The InSpec product name
      PRODUCT = "Chef InSpec"

      # The inspec binary
      EXEC = "inspec"
    end

    class Org
      # product Website address
      WEBSITE = "https://chef.io"

      # The downloads site
      DOWNLOADS_URL = "downloads.chef.io"

      # The legacy conf folder: C:/opscode/chef. Specifically the "opscode" part
      # DIR_SUFFIX is appended to it in code where relevant
      LEGACY_CONF_DIR = "opscode"

      # Enable forcing Chef EULA
      ENFORCE_LICENSE = true

      # product patents page
      PATENTS = "https://www.chef.io/patents"

      # knife documentation page
      KNIFE_DOCS = "https://docs.chef.io/workstation/knife/"

      # the name of the overall infra product
      PRODUCT = "Chef Infra"
    end

    class Server
      # The name of the server product
      PRODUCT = "Chef Infra Server"

      # The server's configuration directory
      CONF_DIR = "/etc/chef-server"

      # The servers's alias (chef-server)
      SERVER = "chef-server"

      # The server's configuration utility
      SERVER_CTL = "chef-server-ctl"
    end

    class Solo
      # Chef-Solo's product name
      PRODUCT = "Chef Infra Solo"

      # The chef-solo executable (legacy local mode)
      EXEC = "chef-solo"
    end

    class Workstation
      # The full marketing name of the product
      PRODUCT = "Chef Workstation"

      # The suffix for Chef Workstation's /opt/chef-workstation or C:\\opscode\chef-workstation
      DIR_SUFFIX = "chef-workstation"

      # Workstation banner/help text
      DOCS = "https://docs.chef.io/workstation/"
    end

    class Zero
      # chef-zero executable
      PRODUCT = "Chef Infra Zero"

      # The chef-zero executable (local mode)
      EXEC = "chef-zero"
    end
  end
end