#!/usr/bin/env ruby # frozen_string_literal: true require 'encrypt_env' require 'optparse' require_relative '../lib/encrypt_env/version' options = {} OptionParser.new do |parser| parser.on('-e', '--environment ENVIRONMENT', 'environment') do |opts| options[:environment] = opts end parser.on('-s', '--set VALUE', 'value') do |opts| options[:set] = opts end parser.on('-t', '--type TYPE', 'type of variable') do |opts| options[:type] = opts end parser.on('-a', '--all', 'show all') do |_opts| options[:all] = true end parser.on('-v', '--version', 'version') do puts Version::VERSION exit end parser.on('-h', '--help', 'help') do puts <<~HELP Usage: encrypt_env setup # To setup for the firt time encrypt_env show # To show environment variables of current environment encrypt_env show -a # To show all environment variables encrypt_env show -e [environment] # To show specific environment variables encrypt_env show [variable_name] -e [environment] # To show value of specific variable encrypt_env edit # To edit environment variables of current environment encrypt_env edit -e [environment] # To edit specific environment variables encrypt_env edit [variable_name] -e [environment] # To edit value of specific variable encrypt_env create variable_name # To create environment variable in current environment encrypt_env create variable_name -e [environment] # To create environment variable in specific environment # To create environment variable in specific environment with value and type encrypt_env create variable_name -s [value] -e [environment] encrypt_env create variable_name -s [value] -e [environment] -t [type] encrypt_env delete variable_name # To delete environment variable in current environment encrypt_env delete variable_name -e [environment] # To delete environment variable in specific environment Or: Visit "https://github.com/nnhutan/encrypt_env" for more information HELP exit end end.parse! # parsers.parse! argv = ARGV action = argv.shift variable_name = argv.shift case action when 'setup' EncryptEnv.setup when 'show', 'edit' if action == 'show' && options[:all] EncryptEnv.show('all') exit end EncryptEnv.send(action, options[:environment], variable_name) when 'create' unless variable_name puts "Please provide 'variable's name'!" exit end if options[:set] EncryptEnv.create_with_value(variable_name, options[:set], options[:environment], options[:type]) else EncryptEnv.send(action, variable_name, options[:environment]) end when 'delete' unless variable_name puts "Please provide 'variable's name'!" exit end EncryptEnv.send(action, variable_name, options[:environment]) else puts "Unknown action: #{action}" puts "Use 'encrypt_env -h' for more help" exit end