summaryrefslogtreecommitdiff
path: root/bin/feature-flag
diff options
context:
space:
mode:
Diffstat (limited to 'bin/feature-flag')
-rwxr-xr-xbin/feature-flag18
1 files changed, 16 insertions, 2 deletions
diff --git a/bin/feature-flag b/bin/feature-flag
index b5e7889be1d..613ddc1d8cb 100755
--- a/bin/feature-flag
+++ b/bin/feature-flag
@@ -35,6 +35,7 @@ class FeatureFlagOptionParser
:name,
:type,
:group,
+ :milestone,
:ee,
:amend,
:dry_run,
@@ -64,6 +65,10 @@ class FeatureFlagOptionParser
options.introduced_by_url = value
end
+ opts.on('-M', '--milestone [string]', String, 'Milestone in which the Feature Flag was introduced') do |value|
+ options.milestone = value
+ end
+
opts.on('-i', '--rollout-issue-url [string]', String, 'URL of Issue rolling out the Feature Flag') do |value|
options.rollout_issue_url = value
end
@@ -99,7 +104,7 @@ class FeatureFlagOptionParser
end
# Name is a first name
- options.name = argv.first
+ options.name = argv.first.downcase.gsub(/-/, '_')
options
end
@@ -126,6 +131,8 @@ class FeatureFlagOptionParser
$stdout.puts ">> Specify the feature flag type:"
$stdout.puts
TYPES.each do |type, data|
+ next if data[:deprecated]
+
$stdout.puts "#{type.to_s.rjust(15)}#{' '*6}#{data[:description]}"
end
@@ -133,7 +140,7 @@ class FeatureFlagOptionParser
$stdout.print "?> "
type = $stdin.gets.strip.to_sym
- return type if TYPES[type]
+ return type if TYPES[type] && !TYPES[type][:deprecated]
$stderr.puts "Invalid type specified '#{type}'"
end
@@ -186,6 +193,11 @@ class FeatureFlagOptionParser
end
end
+ def read_milestone
+ milestone = File.read('VERSION')
+ milestone.gsub(/^(\d+\.\d+).*$/, '\1').chomp
+ end
+
def read_default_enabled(options)
TYPES.dig(options.type, :default_enabled)
end
@@ -212,6 +224,7 @@ class FeatureFlagCreator
options.group ||= FeatureFlagOptionParser.read_group
options.introduced_by_url ||= FeatureFlagOptionParser.read_introduced_by_url
options.rollout_issue_url ||= FeatureFlagOptionParser.read_rollout_issue_url(options)
+ options.milestone ||= FeatureFlagOptionParser.read_milestone
$stdout.puts "\e[32mcreate\e[0m #{file_path}"
$stdout.puts contents
@@ -241,6 +254,7 @@ class FeatureFlagCreator
'name' => options.name,
'introduced_by_url' => options.introduced_by_url,
'rollout_issue_url' => options.rollout_issue_url,
+ 'milestone' => options.milestone,
'group' => options.group,
'type' => options.type.to_s,
'default_enabled' => FeatureFlagOptionParser.read_default_enabled(options)