Skip to content

Commit

Permalink
Add overload option for the CLI
Browse files Browse the repository at this point in the history
  • Loading branch information
AhmedKamal20 committed Mar 16, 2022
1 parent c237d6d commit df23842
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions lib/dotenv/cli.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,23 @@ module Dotenv
# The CLI is a class responsible of handling all the command line interface
# logic.
class CLI
attr_reader :argv, :filenames
attr_reader :argv, :filenames, :overload

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

def run
parse_argv!(@argv)

begin
Dotenv.load!(*@filenames)
if @overload
Dotenv.overload!(*@filenames)
else
Dotenv.load!(*@filenames)
end
rescue Errno::ENOENT => e
abort e.message
else
Expand All @@ -38,6 +43,7 @@ def parse_argv!(argv)

def add_options(parser)
add_files_option(parser)
add_overload_option(parser)
add_help_option(parser)
add_version_option(parser)
add_template_option(parser)
Expand All @@ -49,6 +55,12 @@ def add_files_option(parser)
end
end

def add_overload_option(parser)
parser.on("-o", "--overload", "Use Dotenv.overload To overwrite existing environment variables") do
@overload = true
end
end

def add_help_option(parser)
parser.on("-h", "--help", "Display help") do
puts parser
Expand Down

0 comments on commit df23842

Please sign in to comment.