Class: Dotenv::CLI

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

Overview

The ‘dotenv` command line interface. Run `$ dotenv –help` to see usage.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(argv = []) ⇒ 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
44
45
46
47
48
49
# File 'lib/dotenv/cli.rb', line 11

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

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

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

  on("-i", "--ignore", "ignore missing env files") do
    @ignore = true
  end

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

  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

#overwriteObject (readonly)

Returns the value of attribute overwrite.



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

def overwrite
  @overwrite
end

Instance Method Details

#runObject



51
52
53
54
55
56
57
# File 'lib/dotenv/cli.rb', line 51

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