airbrussh 0.6.0 → 0.7.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a8636d9e6c1f9b44d7a760d970edd17cdfe08de8
4
- data.tar.gz: 94139691e2b02c1b24b42c4df7f6a2aa9924ca45
3
+ metadata.gz: 02f8bd2273940b9050a9d466bc880c7754909dda
4
+ data.tar.gz: d4891e7491c900d0de3cf1cfbc50aab88fd64aba
5
5
  SHA512:
6
- metadata.gz: cc9a2939655844b55ad9c006e5e2cd3866bf93ef8c095107a461e77ad692d705ceca5ccec52d2857c83128c5371f98f75d96a2fc0f2f8cb37827614963ac186f
7
- data.tar.gz: bb6aba0f61291ce8050273d0e3631227b703d7ac8498341ab830ebd7aa6eb19139589a2171c1c624a44f17a06899396fb01396a9bd297b2f245896b177d8d8d2
6
+ metadata.gz: 40bcc8d15dcc408b4fafc53b159cf9bedcd4bdaa55f5010f2bd0ce97988cb84c72c69abedb24b9ca3847ed22046d65f7a511a313a7bb0232d3e06eff0ec2717a
7
+ data.tar.gz: d0a209836a4d667ec2f58081e6a335c0540ef5e5767a01c6c20001ee65f46eb3fa7e2fda0c34abf01e2ac7b52f5d7764f3943fb774e1ca5679d5f4e66cd624d4
data/CHANGELOG.md CHANGED
@@ -8,6 +8,18 @@ Airbrussh is in a pre-1.0 state. This means that its APIs and behavior are subje
8
8
 
9
9
  * Your contribution here!
10
10
 
11
+ ## [0.7.0][] (2015-08-08)
12
+
13
+ Fixes:
14
+
15
+ * Handle truncation of raw/non-UTF8 output without crashing ([#57](https://github.com/mattbrictson/airbrussh/issues/57))
16
+
17
+ Other changes:
18
+
19
+ * Re-implement the "tail log on deploy failure" feature in pure Ruby ([#59](https://github.com/mattbrictson/airbrussh/issues/59))
20
+ * Code of contact added to the project
21
+ * Tests now run on Windows ([#55](https://github.com/mattbrictson/airbrussh/issues/55))
22
+
11
23
  ## [0.6.0][] (2015-07-10)
12
24
 
13
25
  This is another release with mostly behind-the-scenes changes. If you notice any differences in Airbrussh's behavior in this version, [please report an issue](https://github.com/mattbrictson/airbrussh/issues).
@@ -62,7 +74,8 @@ There are, however, many behind-the-scenes changes and improvements to overall c
62
74
  * Initial release
63
75
 
64
76
  [Semver]: http://semver.org
65
- [Unreleased]: https://github.com/mattbrictson/airbrussh/compare/v0.6.0...HEAD
77
+ [Unreleased]: https://github.com/mattbrictson/airbrussh/compare/v0.7.0...HEAD
78
+ [0.7.0]: https://github.com/mattbrictson/airbrussh/compare/v0.6.0...v0.7.0
66
79
  [0.6.0]: https://github.com/mattbrictson/airbrussh/compare/v0.5.1...v0.6.0
67
80
  [0.5.1]: https://github.com/mattbrictson/airbrussh/compare/v0.5.0...v0.5.1
68
81
  [0.5.0]: https://github.com/mattbrictson/airbrussh/compare/v0.4.1...v0.5.0
@@ -0,0 +1,31 @@
1
+ Contributor Code of Conduct
2
+
3
+ As contributors and maintainers of this project, we pledge to respect all
4
+ people who contribute through reporting issues, posting feature requests,
5
+ updating documentation, submitting pull requests or patches, and other
6
+ activities.
7
+
8
+ We are committed to making participation in this project a harassment-free
9
+ experience for everyone, regardless of level of experience, gender, gender
10
+ identity and expression, sexual orientation, disability, personal appearance,
11
+ body size, race, ethnicity, age, or religion.
12
+
13
+ Examples of unacceptable behavior by participants include the use of sexual
14
+ language or imagery, derogatory comments or personal attacks, trolling, public
15
+ or private harassment, insults, or other unprofessional conduct.
16
+
17
+ Project maintainers have the right and responsibility to remove, edit, or
18
+ reject comments, commits, code, wiki edits, issues, and other contributions
19
+ that are not aligned to this Code of Conduct. Project maintainers who do not
20
+ follow the Code of Conduct may be removed from the project team.
21
+
22
+ This code of conduct applies both within project spaces and in public spaces
23
+ when an individual is representing the project or its community.
24
+
25
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
26
+ reported by opening an issue or contacting one or more of the project
27
+ maintainers.
28
+
29
+ This Code of Conduct is adapted from the Contributor Covenant
30
+ (http://contributor-covenant.org), version 1.1.0, available at
31
+ http://contributor-covenant.org/version/1/1/0/
data/README.md CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/airbrussh.svg)](http://badge.fury.io/rb/airbrussh)
4
4
  [![Build Status](https://travis-ci.org/mattbrictson/airbrussh.svg?branch=master)](https://travis-ci.org/mattbrictson/airbrussh)
5
+ [![Build status](https://ci.appveyor.com/api/projects/status/h052rlq54sne3md6/branch/master?svg=true)](https://ci.appveyor.com/project/mattbrictson/airbrussh/branch/master)
5
6
  [![Code Climate](https://codeclimate.com/github/mattbrictson/airbrussh/badges/gpa.svg)](https://codeclimate.com/github/mattbrictson/airbrussh)
6
7
  [![Coverage Status](https://coveralls.io/repos/mattbrictson/airbrussh/badge.svg?branch=master)](https://coveralls.io/r/mattbrictson/airbrussh?branch=master)
7
8
 
data/appveyor.yml ADDED
@@ -0,0 +1,18 @@
1
+ version: '{build}'
2
+
3
+ skip_tags: true
4
+
5
+ environment:
6
+ matrix:
7
+ - ruby_version: "21"
8
+ - ruby_version: "21-x64"
9
+
10
+ install:
11
+ - SET PATH=C:\Ruby%ruby_version%\bin;%PATH%
12
+ - gem install bundler --no-document --conservative --version 1.10.5
13
+ - bundle install --retry=3
14
+
15
+ test_script:
16
+ - bundle exec rake
17
+
18
+ build: off
@@ -43,7 +43,7 @@ module Airbrussh
43
43
  error_line(yellow("** Refer to #{log_file} for details. "\
44
44
  "Here are the last 20 lines:"))
45
45
  error_line
46
- error_line(`tail -n 20 #{log_file.shellescape} 2>&1`)
46
+ error_line(tail_log_file)
47
47
  end
48
48
 
49
49
  private
@@ -75,6 +75,16 @@ module Airbrussh
75
75
  def error_line(line="\n")
76
76
  line.each_line(&err_console.method(:print_line))
77
77
  end
78
+
79
+ # Returns a String containing the last 20 lines of the log file. Since
80
+ # this method uses a fixed-size buffer, fewer than 20 lines may be
81
+ # returned in cases where the lines are extremely long.
82
+ def tail_log_file
83
+ open(log_file) do |file|
84
+ file.seek(-[8192, file.size].min, IO::SEEK_END)
85
+ file.readlines.last(20).join
86
+ end
87
+ end
78
88
  end
79
89
  end
80
90
  end
@@ -39,11 +39,13 @@ module Airbrussh
39
39
 
40
40
  def truncate_to_console_width(string)
41
41
  string = (string || "").rstrip
42
+ ellipsis = utf8_supported?(string) ? "…" : "..."
42
43
  width = console_width
43
44
 
44
45
  if strip_ascii_color(string).length > width
45
- string.chop! while strip_ascii_color(string).length >= width
46
- string << "…\e[0m"
46
+ width -= ellipsis.length
47
+ string.chop! while strip_ascii_color(string).length > width
48
+ string << "#{ellipsis}\e[0m"
47
49
  else
48
50
  string
49
51
  end
@@ -74,5 +76,11 @@ module Airbrussh
74
76
  false
75
77
  end
76
78
  end
79
+
80
+ def utf8_supported?(string)
81
+ string.encode("UTF-8").valid_encoding?
82
+ rescue Encoding::UndefinedConversionError
83
+ false
84
+ end
77
85
  end
78
86
  end
@@ -1,3 +1,3 @@
1
1
  module Airbrussh
2
- VERSION = "0.6.0"
2
+ VERSION = "0.7.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: airbrussh
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Brictson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-07-10 00:00:00.000000000 Z
11
+ date: 2015-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sshkit
@@ -142,6 +142,7 @@ files:
142
142
  - ".rubocop_todo.yml"
143
143
  - ".travis.yml"
144
144
  - CHANGELOG.md
145
+ - CODE_OF_CONDUCT.md
145
146
  - CONTRIBUTING.md
146
147
  - Gemfile
147
148
  - Guardfile
@@ -149,6 +150,7 @@ files:
149
150
  - README.md
150
151
  - Rakefile
151
152
  - airbrussh.gemspec
153
+ - appveyor.yml
152
154
  - bin/console
153
155
  - bin/setup
154
156
  - bin/test_all.rb