hedgelog 0.1.11 → 0.1.13.alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +45 -34
- data/.ruby-version +1 -1
- data/.travis.yml +4 -1
- data/bin/profile +0 -1
- data/hedgelog.gemspec +3 -2
- data/lib/hedgelog/normalizer.rb +4 -4
- data/lib/hedgelog/scrub_replacement.rb +7 -5
- data/lib/hedgelog/version.rb +1 -1
- data/lib/hedgelog.rb +5 -3
- data/script/.bash_helpers +47 -0
- data/script/.env.colors +94 -0
- data/script/.exit_handler +50 -0
- data/script/publish.sh +161 -0
- metadata +15 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 875b58fb26d8f6cffda3998b8ab3a5e6a9350895c8c6ac5fb01dc7eebdd9052e
|
4
|
+
data.tar.gz: 16636d198b831e232abcbcce6f6d55584ce3e1f0bfb635366031c8fdc594364e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0bc28f6bdbf2a8757ad1bcd9f66b55ff9511ef4b08ae5f070a301e5286ec9de17dab61329904b21c0b7e39670ae59b122300884bf24d95d85f5890cea1ec04f5
|
7
|
+
data.tar.gz: c281aeca41ab0516f8a77c922c544d7a5e0ef676d69141f99a884d68f45df4d6664657163aee47864b47d6553e1789adaeb706d9b246f381f764294d19a0a4ec
|
data/.rubocop.yml
CHANGED
@@ -2,66 +2,77 @@
|
|
2
2
|
inherit_from: #{RUBOCOP_HOME}/config/default.yml
|
3
3
|
|
4
4
|
AllCops:
|
5
|
-
|
5
|
+
SuggestExtensions: false
|
6
|
+
TargetRubyVersion: 2.7
|
6
7
|
Exclude:
|
7
8
|
- 'vendor/**/*'
|
8
9
|
- 'Guardfile'
|
10
|
+
NewCops: enable
|
9
11
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
PerceivedComplexity:
|
14
|
-
Max: 20
|
15
|
-
|
16
|
-
MethodLength:
|
17
|
-
Max: 30
|
12
|
+
Gemspec/RequireMFA:
|
13
|
+
Enabled: false
|
18
14
|
|
19
|
-
|
15
|
+
Layout/LeadingCommentSpace:
|
20
16
|
Enabled: false
|
21
17
|
|
22
|
-
LineLength:
|
18
|
+
Layout/LineLength:
|
23
19
|
Max: 150
|
24
20
|
|
25
|
-
|
21
|
+
Layout/SpaceInsideHashLiteralBraces:
|
22
|
+
EnforcedStyle: no_space
|
23
|
+
|
24
|
+
Metrics/BlockLength:
|
25
|
+
Exclude:
|
26
|
+
- 'spec/**/*.rb'
|
27
|
+
|
28
|
+
Metrics/BlockNesting:
|
29
|
+
Max: 4
|
30
|
+
|
31
|
+
Metrics/ClassLength:
|
26
32
|
Enabled: false
|
27
33
|
|
28
|
-
|
34
|
+
Metrics/CyclomaticComplexity:
|
35
|
+
Max: 15
|
36
|
+
|
37
|
+
Metrics/MethodLength:
|
38
|
+
Max: 30
|
39
|
+
|
40
|
+
Metrics/PerceivedComplexity:
|
41
|
+
Max: 20
|
42
|
+
|
43
|
+
Style/AccessModifierDeclarations:
|
44
|
+
EnforcedStyle: inline
|
45
|
+
|
46
|
+
Style/CommentAnnotation:
|
29
47
|
Enabled: false
|
30
48
|
|
31
|
-
|
49
|
+
Style/Documentation:
|
32
50
|
Enabled: false
|
33
51
|
|
34
|
-
|
52
|
+
Style/FrozenStringLiteralComment:
|
35
53
|
Enabled: false
|
36
54
|
|
37
|
-
|
55
|
+
Style/HashConversion:
|
56
|
+
Enabled: true
|
57
|
+
|
58
|
+
Style/Next:
|
38
59
|
Enabled: false
|
39
60
|
|
40
|
-
OptionalArguments:
|
61
|
+
Style/OptionalArguments:
|
41
62
|
Enabled: false
|
42
63
|
|
43
|
-
|
44
|
-
|
64
|
+
Style/RedundantStringEscape:
|
65
|
+
Enabled: true
|
45
66
|
|
46
|
-
SignalException:
|
67
|
+
Style/SignalException:
|
47
68
|
EnforcedStyle: only_raise
|
48
69
|
|
49
|
-
TrivialAccessors:
|
50
|
-
AllowPredicates: true
|
51
|
-
|
52
|
-
BlockNesting:
|
53
|
-
Max: 4
|
54
|
-
|
55
70
|
Style/StringLiterals:
|
56
71
|
Enabled: true
|
57
72
|
EnforcedStyle: single_quotes
|
58
73
|
|
59
|
-
|
60
|
-
|
61
|
-
- 'spec/**/*.rb'
|
62
|
-
|
63
|
-
Style/FrozenStringLiteralComment:
|
64
|
-
Enabled: false
|
74
|
+
Style/TrivialAccessors:
|
75
|
+
AllowPredicates: true
|
65
76
|
|
66
|
-
Style/
|
67
|
-
|
77
|
+
Style/WordArray:
|
78
|
+
Enabled: false
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.7
|
data/.travis.yml
CHANGED
data/bin/profile
CHANGED
data/hedgelog.gemspec
CHANGED
@@ -5,12 +5,13 @@ require 'hedgelog/version'
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = 'hedgelog'
|
7
7
|
spec.version = Hedgelog::VERSION
|
8
|
+
spec.required_ruby_version = '>= 2.7.0'
|
8
9
|
spec.licenses = ['MIT']
|
9
10
|
spec.authors = ['Jeff Utter']
|
10
11
|
spec.email = ['jeff.utter@firespring.com']
|
11
12
|
|
12
13
|
spec.homepage = 'https://github.com/firespring/hedgelog'
|
13
|
-
spec.summary = 'A
|
14
|
+
spec.summary = 'A structured JSON logger for Ruby'
|
14
15
|
spec.description = 'An opinionated/structured JSON logger for Ruby'
|
15
16
|
|
16
17
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
@@ -19,5 +20,5 @@ Gem::Specification.new do |spec|
|
|
19
20
|
spec.require_paths = ['lib']
|
20
21
|
|
21
22
|
spec.add_dependency 'yajl-ruby', '~> 1.4'
|
22
|
-
spec.add_development_dependency 'bundler'
|
23
|
+
spec.add_development_dependency 'bundler'
|
23
24
|
end
|
data/lib/hedgelog/normalizer.rb
CHANGED
@@ -7,13 +7,13 @@ class Hedgelog
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def normalize_struct(struct)
|
10
|
-
normalize_hash(
|
10
|
+
normalize_hash(struct.each_pair.to_a.to_h)
|
11
11
|
end
|
12
12
|
|
13
13
|
def normalize_hash(hash)
|
14
|
-
|
15
|
-
|
16
|
-
end
|
14
|
+
hash.transform_values do |val|
|
15
|
+
normalize_thing(val)
|
16
|
+
end
|
17
17
|
end
|
18
18
|
|
19
19
|
def normalize_array(array)
|
@@ -3,15 +3,17 @@ class Hedgelog
|
|
3
3
|
def initialize(key, replacement)
|
4
4
|
@key = key
|
5
5
|
@replacement = replacement
|
6
|
-
@match_regex = /("?)#{@key}(
|
6
|
+
@match_regex = /("?)#{@key}\1(=>|=|:)(\s*)("?)(.+?)\4(&|,|;|\s|$)/
|
7
7
|
end
|
8
8
|
|
9
9
|
def scrub_string(string)
|
10
10
|
string.gsub!(@match_regex) do
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
11
|
+
quote1 = Regexp.last_match[1]
|
12
|
+
sep = Regexp.last_match[2]
|
13
|
+
whitespace = Regexp.last_match[3]
|
14
|
+
quote2 = Regexp.last_match[4]
|
15
|
+
rest = Regexp.last_match[6]
|
16
|
+
"#{quote1}#{@key}#{quote1}#{sep}#{whitespace}#{quote2}#{@replacement}#{quote2}#{rest}"
|
15
17
|
end
|
16
18
|
end
|
17
19
|
|
data/lib/hedgelog/version.rb
CHANGED
data/lib/hedgelog.rb
CHANGED
@@ -25,7 +25,7 @@ class Hedgelog
|
|
25
25
|
attr_reader :level
|
26
26
|
attr_writer :app
|
27
27
|
|
28
|
-
def initialize(logdev =
|
28
|
+
def initialize(logdev = $stdout, shift_age = nil, shift_size = nil)
|
29
29
|
@level = LEVELS[:debug]
|
30
30
|
@channel = nil
|
31
31
|
@logdev = nil
|
@@ -48,6 +48,7 @@ class Hedgelog
|
|
48
48
|
@level = int_level
|
49
49
|
end
|
50
50
|
|
51
|
+
# rubocop:disable Metrics/ParameterLists
|
51
52
|
def add(severity = LEVELS[:unknown], message = nil, progname = nil, context = {}, &block)
|
52
53
|
return true if (@logdev.nil? && @channel.nil?) || severity < @level
|
53
54
|
|
@@ -62,6 +63,7 @@ class Hedgelog
|
|
62
63
|
|
63
64
|
@channel&.add(severity, nil, progname, context)
|
64
65
|
end
|
66
|
+
# rubocop:enable Metrics/ParameterLists
|
65
67
|
|
66
68
|
def []=(key, val)
|
67
69
|
@channel_context[key] = val
|
@@ -147,7 +149,7 @@ class Hedgelog
|
|
147
149
|
data[:caller] = debugharder(caller(4, 1).first) if debug?
|
148
150
|
data = extract_top_level_keys(data)
|
149
151
|
|
150
|
-
@logdev.write(Yajl::Encoder.encode(data)
|
152
|
+
@logdev.write("#{Yajl::Encoder.encode(data)}\n")
|
151
153
|
true
|
152
154
|
end
|
153
155
|
|
@@ -176,7 +178,7 @@ class Hedgelog
|
|
176
178
|
whence = $LOAD_PATH.find { |p| path.start_with?(p) }
|
177
179
|
file = if whence
|
178
180
|
# Remove the RUBYLIB path portion of the full file name
|
179
|
-
path[whence.length + 1
|
181
|
+
path[whence.length + 1..]
|
180
182
|
else
|
181
183
|
# We get here if the path is not in $:
|
182
184
|
path
|
@@ -0,0 +1,47 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
base_dir=$(dirname $BASH_SOURCE)
|
3
|
+
. ${base_dir}/.env.colors
|
4
|
+
|
5
|
+
die()
|
6
|
+
{
|
7
|
+
echo
|
8
|
+
set_red
|
9
|
+
echo >&2 "$@"
|
10
|
+
reset_colors
|
11
|
+
exit 2
|
12
|
+
}
|
13
|
+
|
14
|
+
finish()
|
15
|
+
{
|
16
|
+
echo
|
17
|
+
set_white
|
18
|
+
echo "$@"
|
19
|
+
reset_colors
|
20
|
+
exit 0
|
21
|
+
}
|
22
|
+
|
23
|
+
confirm()
|
24
|
+
{
|
25
|
+
prompt="${1:-Are you sure? [y/N]}"
|
26
|
+
|
27
|
+
set_yellow
|
28
|
+
echo -n "$prompt "
|
29
|
+
reset_colors
|
30
|
+
|
31
|
+
if [ "${NO_INPUT:-}" == 'true' ]
|
32
|
+
then
|
33
|
+
# Continue if 'NO_INPUT' has been set
|
34
|
+
true
|
35
|
+
else
|
36
|
+
# call with a prompt string or use a default
|
37
|
+
read -r response
|
38
|
+
case "$response" in
|
39
|
+
[yY][eE][sS]|[yY])
|
40
|
+
true
|
41
|
+
;;
|
42
|
+
*)
|
43
|
+
false
|
44
|
+
;;
|
45
|
+
esac
|
46
|
+
fi
|
47
|
+
}
|
data/script/.env.colors
ADDED
@@ -0,0 +1,94 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
echo_red()
|
4
|
+
{
|
5
|
+
set_red
|
6
|
+
echo "$@"
|
7
|
+
reset_colors
|
8
|
+
}
|
9
|
+
|
10
|
+
set_red()
|
11
|
+
{
|
12
|
+
echo -ne "\033[31;1m"
|
13
|
+
}
|
14
|
+
|
15
|
+
set_background_red()
|
16
|
+
{
|
17
|
+
echo -ne "\033[41;1m"
|
18
|
+
}
|
19
|
+
|
20
|
+
set_light_red()
|
21
|
+
{
|
22
|
+
echo -ne "\033[91;1m"
|
23
|
+
}
|
24
|
+
|
25
|
+
echo_green()
|
26
|
+
{
|
27
|
+
set_green
|
28
|
+
echo "$@"
|
29
|
+
reset_colors
|
30
|
+
}
|
31
|
+
|
32
|
+
set_green()
|
33
|
+
{
|
34
|
+
echo -ne "\033[32;1m"
|
35
|
+
}
|
36
|
+
|
37
|
+
set_background_green()
|
38
|
+
{
|
39
|
+
echo -ne "\033[42;1m"
|
40
|
+
}
|
41
|
+
|
42
|
+
set_light_green()
|
43
|
+
{
|
44
|
+
echo -ne "\033[92;1m"
|
45
|
+
}
|
46
|
+
|
47
|
+
echo_yellow()
|
48
|
+
{
|
49
|
+
set_yellow
|
50
|
+
echo "$@"
|
51
|
+
reset_colors
|
52
|
+
}
|
53
|
+
|
54
|
+
set_yellow()
|
55
|
+
{
|
56
|
+
echo -ne "\033[33;1m"
|
57
|
+
}
|
58
|
+
|
59
|
+
set_background_yellow()
|
60
|
+
{
|
61
|
+
echo -ne "\033[43;1m"
|
62
|
+
}
|
63
|
+
|
64
|
+
set_light_yellow()
|
65
|
+
{
|
66
|
+
echo -ne "\033[93;1m"
|
67
|
+
}
|
68
|
+
|
69
|
+
set_white()
|
70
|
+
{
|
71
|
+
echo -ne "\033[37;1m"
|
72
|
+
}
|
73
|
+
|
74
|
+
set_background_white()
|
75
|
+
{
|
76
|
+
echo -ne "\033[47;1m"
|
77
|
+
}
|
78
|
+
|
79
|
+
echo_light_white()
|
80
|
+
{
|
81
|
+
set_light_white
|
82
|
+
echo "$@"
|
83
|
+
reset_colors
|
84
|
+
}
|
85
|
+
|
86
|
+
set_light_white()
|
87
|
+
{
|
88
|
+
echo -ne "\033[97;1m"
|
89
|
+
}
|
90
|
+
|
91
|
+
reset_colors()
|
92
|
+
{
|
93
|
+
echo -ne "\033[0m"
|
94
|
+
}
|
@@ -0,0 +1,50 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
base_dir=$(dirname $BASH_SOURCE)
|
3
|
+
. ${base_dir}/.env.colors
|
4
|
+
|
5
|
+
exit_handler()
|
6
|
+
{
|
7
|
+
RETVAL=$?
|
8
|
+
|
9
|
+
echo
|
10
|
+
if [ $RETVAL -eq 0 ]
|
11
|
+
then
|
12
|
+
echo_green " Command [ ${BASH_SOURCE[1]} ] completed successfully"
|
13
|
+
else
|
14
|
+
set +o xtrace
|
15
|
+
set_background_red
|
16
|
+
echo " Error in ${BASH_SOURCE[1]}:${BASH_LINENO[0]} - '${BASH_COMMAND}' exited with status $RETVAL"
|
17
|
+
|
18
|
+
# Print out the stack trace
|
19
|
+
if [ ${#FUNCNAME[@]} -gt 2 ]
|
20
|
+
then
|
21
|
+
echo
|
22
|
+
echo " Stacktrace:"
|
23
|
+
for ((i=1;i<${#FUNCNAME[@]}-1;i++))
|
24
|
+
do
|
25
|
+
echo " $i: ${BASH_SOURCE[$i+1]}:${BASH_LINENO[$i]} ${FUNCNAME[$i]}(...)"
|
26
|
+
done
|
27
|
+
fi
|
28
|
+
reset_colors
|
29
|
+
fi
|
30
|
+
|
31
|
+
echo
|
32
|
+
exit $RETVAL
|
33
|
+
}
|
34
|
+
|
35
|
+
int_handler()
|
36
|
+
{
|
37
|
+
echo
|
38
|
+
echo_yellow " Ctrl-C received, exiting"
|
39
|
+
echo
|
40
|
+
exit 130
|
41
|
+
}
|
42
|
+
|
43
|
+
SHOULD_ADD_EXIT_HANDLER=${SHOULD_ADD_EXIT_HANDLER:-}
|
44
|
+
if [ "$SHOULD_ADD_EXIT_HANDLER" = '' ]
|
45
|
+
then
|
46
|
+
trap exit_handler EXIT
|
47
|
+
trap int_handler INT
|
48
|
+
fi
|
49
|
+
export SHOULD_ADD_EXIT_HANDLER=1
|
50
|
+
set -o errtrace
|
data/script/publish.sh
ADDED
@@ -0,0 +1,161 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
set -euo pipefail
|
3
|
+
base_dir=$(dirname $BASH_SOURCE)
|
4
|
+
. ${base_dir}/.env.colors
|
5
|
+
. ${base_dir}/.exit_handler
|
6
|
+
. ${base_dir}/.bash_helpers
|
7
|
+
|
8
|
+
HEDGELOG_DIR=$(readlink -f ${base_dir}/../)
|
9
|
+
|
10
|
+
HEDGELOG_VERSION_FILE="${HEDGELOG_DIR}/lib/hedgelog/version.rb"
|
11
|
+
|
12
|
+
HEDGELOG_VERSION=${HEDGELOG_VERSION:-}
|
13
|
+
VALID_VERSION_FORMAT="^[0-9]+.[0-9]+.[0-9]+(\.alpha.[0-9+])?$"
|
14
|
+
|
15
|
+
RUBYGEMS_CRED_FILE=".gem/credentials"
|
16
|
+
RUBYGEMS_USER_CRED_FILE="${HOME}/${RUBYGEMS_CRED_FILE}"
|
17
|
+
RUBYGEMS_ROOT_CRED_FILE="/root/${RUBYGEMS_CRED_FILE}"
|
18
|
+
RUBYGEMS_CRED_VOLUME="${RUBYGEMS_USER_CRED_FILE}:${RUBYGEMS_ROOT_CRED_FILE}"
|
19
|
+
touch "${RUBYGEMS_USER_CRED_FILE}"
|
20
|
+
chmod 600 "${RUBYGEMS_USER_CRED_FILE}"
|
21
|
+
|
22
|
+
|
23
|
+
usage() {
|
24
|
+
echo "USAGE: $(basename "$0")"
|
25
|
+
echo
|
26
|
+
echo " Input parameters can be specified via environmental variables:"
|
27
|
+
echo " HEDGELOG_VERSION (default: <none>) must be in the format '${VALID_VERSION_FORMAT}'"
|
28
|
+
echo
|
29
|
+
echo " the following will update the hedgelog version to 4.8.1.alpha.2"
|
30
|
+
echo " HEDGELOG_VERSION=4.8.1.alpha.2 $(basename "$0")"
|
31
|
+
}
|
32
|
+
|
33
|
+
validate()
|
34
|
+
{
|
35
|
+
[ "$*" == "" ] || finish "$(usage)"
|
36
|
+
|
37
|
+
found_version_to_update=''
|
38
|
+
STARTING_HEDGELOG_VERSION=$(get_gem_version "${HEDGELOG_VERSION_FILE}")
|
39
|
+
if [ "${HEDGELOG_VERSION}" == "" ]
|
40
|
+
then
|
41
|
+
echo_light_white "No hedgelog version given. Leaving at [ ${STARTING_HEDGELOG_VERSION} ]"
|
42
|
+
else
|
43
|
+
found_version_to_update='true'
|
44
|
+
validate_version_format "${HEDGELOG_VERSION}" || die "Version [ ${HEDGELOG_VERSION} ] must be in the format ${VALID_VERSION_FORMAT}"
|
45
|
+
echo_light_white "This will update the hedgelog version from [ ${STARTING_HEDGELOG_VERSION} ] to [ ${HEDGELOG_VERSION} ]."
|
46
|
+
fi
|
47
|
+
|
48
|
+
if [ "${found_version_to_update}" == 'true' ]
|
49
|
+
then
|
50
|
+
echo
|
51
|
+
confirm " Do you wish to continue? (y/n)" || finish "Exiting..."
|
52
|
+
else
|
53
|
+
echo
|
54
|
+
echo_yellow "No versions given to update"
|
55
|
+
echo
|
56
|
+
exit 0
|
57
|
+
fi
|
58
|
+
}
|
59
|
+
|
60
|
+
validate_version_format()
|
61
|
+
{
|
62
|
+
local version=$1
|
63
|
+
echo "${version}" | grep -qE "${VALID_VERSION_FORMAT}"
|
64
|
+
}
|
65
|
+
|
66
|
+
main()
|
67
|
+
{
|
68
|
+
echo
|
69
|
+
validate $*
|
70
|
+
echo
|
71
|
+
|
72
|
+
hedgelog_gem_update=""
|
73
|
+
if [ "${HEDGELOG_VERSION}" != "" ]
|
74
|
+
then
|
75
|
+
hedgelog_gem_update="hedgelog=$(normalize_gem_version "${HEDGELOG_VERSION}")"
|
76
|
+
publish_hedgelog "${HEDGELOG_VERSION}"
|
77
|
+
fi
|
78
|
+
|
79
|
+
# GEMS="${hedgelog_gem_update}" ${base_dir}/update_gems.sh
|
80
|
+
|
81
|
+
# I'm doing this because I don't want persistent cred files on our dev servers which would give access to publish
|
82
|
+
# gems - in case a dev server was ever compromised
|
83
|
+
[[ -f ${RUBYGEMS_USER_CRED_FILE} ]] && rm -f ${RUBYGEMS_USER_CRED_FILE}
|
84
|
+
|
85
|
+
echo
|
86
|
+
echo_light_white "Hedgelog has successfully been upgraded from version [ ${STARTING_HEDGELOG_VERSION} ] to [ ${HEDGELOG_VERSION} ]"
|
87
|
+
echo
|
88
|
+
}
|
89
|
+
|
90
|
+
publish_hedgelog()
|
91
|
+
{
|
92
|
+
local desired_version=$1
|
93
|
+
|
94
|
+
# Change the version in the file
|
95
|
+
update_gem_version "${HEDGELOG_VERSION_FILE}" "${desired_version}"
|
96
|
+
|
97
|
+
# Make sure hedgelog is up to date
|
98
|
+
echo "Checking to see if the hedgelog gem needs to be published..."
|
99
|
+
|
100
|
+
# versions="$(MSYS_NO_PATHCONV=1 docker-compose ${COMPOSE_FILES} run --no-deps -v "${RUBYGEMS_CRED_VOLUME}" --entrypoint /bin/sh client-ruby -c "gem query --all --pre --remote stbaldricks")"
|
101
|
+
versions=`gem query --all --pre --remote hedgelog`
|
102
|
+
if echo "${versions}" | grep -Eq "(\(| )${desired_version}(,|\))"
|
103
|
+
then
|
104
|
+
# Make sure the user expected this to have already been published
|
105
|
+
confirm " Hedgelog gem version ${desired_version} has already been published. Is this expected? (y/n)" || finish "Exiting..."
|
106
|
+
else
|
107
|
+
# Publish the gem
|
108
|
+
echo "Starting ruby container to build and publish gem"
|
109
|
+
# MSYS_NO_PATHCONV=1 docker-compose ${COMPOSE_FILES} run --no-deps -v "${RUBYGEMS_CRED_VOLUME}" --entrypoint /bin/sh client-ruby -c "gem build stbaldricks.gemspec && gem push stbaldricks-${desired_version}.gem"
|
110
|
+
gem build hedgelog.gemspec && gem push "hedgelog-${desired_version}.gem"
|
111
|
+
fi
|
112
|
+
echo
|
113
|
+
}
|
114
|
+
|
115
|
+
get_gem_version()
|
116
|
+
{
|
117
|
+
local version_file=$1
|
118
|
+
normalize_version "$(sed -nre "s@.*VERSION.*=.*('|\")(.*)('|\").*@\2@gp" ${version_file})"
|
119
|
+
}
|
120
|
+
|
121
|
+
update_gem_version()
|
122
|
+
{
|
123
|
+
local version_file=$1
|
124
|
+
local version=$2
|
125
|
+
local gem_version=$(normalize_gem_version "${version}")
|
126
|
+
|
127
|
+
# Try to update the gem version in the file
|
128
|
+
sed -i -re "s@(.*VERSION.*=.*)('|\")(.*)('|\")(.*)@\1\2${gem_version}\4\5@g" "${version_file}"
|
129
|
+
|
130
|
+
# Verify the version is now what we wanted
|
131
|
+
updated_version=$(get_gem_version "${version_file}")
|
132
|
+
if [ "${updated_version}" != "${version}" ]
|
133
|
+
then
|
134
|
+
die "Unable to update version [ ${version} ] in [ ${version_file} ] (got ${updated_version})"
|
135
|
+
fi
|
136
|
+
git add "${version_file}"
|
137
|
+
}
|
138
|
+
|
139
|
+
normalize_version()
|
140
|
+
{
|
141
|
+
local version=$1
|
142
|
+
echo $version | sed -re "s@([0-9]).(alpha)@\1.\2@g"
|
143
|
+
}
|
144
|
+
|
145
|
+
normalize_gem_version()
|
146
|
+
{
|
147
|
+
local version=$1
|
148
|
+
echo $version | sed -re "s@([0-9]).(alpha)@\1.\2@g"
|
149
|
+
}
|
150
|
+
|
151
|
+
strip_alpha()
|
152
|
+
{
|
153
|
+
local starting_version=$1
|
154
|
+
echo ${starting_version} | sed -re 's@(.*).alpha.[0-9]+@\1@g'
|
155
|
+
}
|
156
|
+
|
157
|
+
export -f get_gem_version strip_alpha
|
158
|
+
|
159
|
+
# Only run main if this script isn't currently being sourced
|
160
|
+
$(return >/dev/null 2>&1) || main $*
|
161
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hedgelog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.13.alpha.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Utter
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: yajl-ruby
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '0'
|
41
41
|
description: An opinionated/structured JSON logger for Ruby
|
42
42
|
email:
|
43
43
|
- jeff.utter@firespring.com
|
@@ -68,6 +68,10 @@ files:
|
|
68
68
|
- lib/hedgelog/scrub_replacement.rb
|
69
69
|
- lib/hedgelog/scrubber.rb
|
70
70
|
- lib/hedgelog/version.rb
|
71
|
+
- script/.bash_helpers
|
72
|
+
- script/.env.colors
|
73
|
+
- script/.exit_handler
|
74
|
+
- script/publish.sh
|
71
75
|
homepage: https://github.com/firespring/hedgelog
|
72
76
|
licenses:
|
73
77
|
- MIT
|
@@ -80,16 +84,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
80
84
|
requirements:
|
81
85
|
- - ">="
|
82
86
|
- !ruby/object:Gem::Version
|
83
|
-
version:
|
87
|
+
version: 2.7.0
|
84
88
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
85
89
|
requirements:
|
86
|
-
- - "
|
90
|
+
- - ">"
|
87
91
|
- !ruby/object:Gem::Version
|
88
|
-
version:
|
92
|
+
version: 1.3.1
|
89
93
|
requirements: []
|
90
|
-
|
91
|
-
rubygems_version: 2.7.7
|
94
|
+
rubygems_version: 3.1.4
|
92
95
|
signing_key:
|
93
96
|
specification_version: 4
|
94
|
-
summary: A
|
97
|
+
summary: A structured JSON logger for Ruby
|
95
98
|
test_files: []
|