Truncate filenames created by bin/changelog to 140 characters
This commit is contained in:
parent
c6b670216c
commit
df54458a93
|
@ -23,6 +23,8 @@ module ChangelogHelpers
|
|||
Abort = Class.new(StandardError)
|
||||
Done = Class.new(StandardError)
|
||||
|
||||
MAX_FILENAME_LENGTH = 140 # ecryptfs has a limit of 140 characters
|
||||
|
||||
def capture_stdout(cmd)
|
||||
output = IO.popen(cmd, &:read)
|
||||
fail_with "command failed: #{cmd.join(' ')}" unless $?.success?
|
||||
|
@ -142,7 +144,9 @@ class ChangelogEntry
|
|||
|
||||
def initialize(options)
|
||||
@options = options
|
||||
end
|
||||
|
||||
def execute
|
||||
assert_feature_branch!
|
||||
assert_title!
|
||||
assert_new_file!
|
||||
|
@ -221,10 +225,12 @@ class ChangelogEntry
|
|||
end
|
||||
|
||||
def file_path
|
||||
File.join(
|
||||
base_path = File.join(
|
||||
unreleased_path,
|
||||
branch_name.gsub(/[^\w-]/, '-') << '.yml'
|
||||
)
|
||||
branch_name.gsub(/[^\w-]/, '-'))
|
||||
|
||||
# Add padding for .yml extension
|
||||
base_path[0..MAX_FILENAME_LENGTH - 5] + '.yml'
|
||||
end
|
||||
|
||||
def unreleased_path
|
||||
|
@ -250,7 +256,7 @@ end
|
|||
if $0 == __FILE__
|
||||
begin
|
||||
options = ChangelogOptionParser.parse(ARGV)
|
||||
ChangelogEntry.new(options)
|
||||
ChangelogEntry.new(options).execute
|
||||
rescue ChangelogHelpers::Abort => ex
|
||||
$stderr.puts ex.message
|
||||
exit 1
|
||||
|
|
|
@ -3,6 +3,20 @@ require 'spec_helper'
|
|||
load File.expand_path('../../bin/changelog', __dir__)
|
||||
|
||||
describe 'bin/changelog' do
|
||||
let(:options) { OpenStruct.new(title: 'Test title', type: 'fixed', dry_run: true) }
|
||||
|
||||
describe ChangelogEntry do
|
||||
it 'truncates the file path' do
|
||||
entry = described_class.new(options)
|
||||
|
||||
allow(entry).to receive(:ee?).and_return(false)
|
||||
allow(entry).to receive(:branch_name).and_return('long-branch-' * 100)
|
||||
|
||||
file_path = entry.send(:file_path)
|
||||
expect(file_path.length).to eq(140)
|
||||
end
|
||||
end
|
||||
|
||||
describe ChangelogOptionParser do
|
||||
describe '.parse' do
|
||||
it 'parses --amend' do
|
||||
|
|
Loading…
Reference in New Issue