Class: Dotenv::CLI

Inherits:
OptionParser
  • Object
show all
Defined in:
lib/dotenv/cli.rb

Overview

The command line interface

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(argv = []) ⇒ CLI

Returns a new instance of CLI.



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
# File 'lib/dotenv/cli.rb', line 11

def initialize(argv = [])
  @argv = argv.dup
  @filenames = []
  @overload = false

  super "Usage: dotenv [options]"
  separator ""

  on("-f FILES", Array, "List of env files to parse") do |list|
    @filenames = list
  end

  on("-o", "--overload", "override existing ENV variables") do
    @overload = true
  end

  on("-h", "--help", "Display help") do
    puts self
    exit
  end

  on("-v", "--version", "Show version") do
    puts "dotenv #{Dotenv::VERSION}"
    exit
  end

  on("-t", "--template=FILE", "Create a template env file") do |file|
    template = Dotenv::EnvTemplate.new(file)
    template.create_template
  end

  order!(@argv)
end

Instance Attribute Details

#argvObject (readonly)

Returns the value of attribute argv.



9
10
11
# File 'lib/dotenv/cli.rb', line 9

def argv
  @argv
end

#filenamesObject (readonly)

Returns the value of attribute filenames.



9
10
11
# File 'lib/dotenv/cli.rb', line 9

def filenames
  @filenames
end

#overloadObject (readonly)

Returns the value of attribute overload.



9
10
11
# File 'lib/dotenv/cli.rb', line 9

def overload
  @overload
end

Instance Method Details

#runObject



45
46
47
48
49
50
51
52
53
54
55
# File 'lib/dotenv/cli.rb', line 45

def run
  if @overload
    Dotenv.overload!(*@filenames)
  else
    Dotenv.load!(*@filenames)
  end
rescue Errno::ENOENT => e
  abort e.message
else
  exec(*@argv) unless @argv.empty?
end