ssh-hull 1.0.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.
Files changed (68) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/ci.yml +44 -0
  3. data/.gitignore +27 -0
  4. data/.rubocop.yml +62 -0
  5. data/.tool-versions +1 -0
  6. data/Gemfile +5 -0
  7. data/Gemfile.lock +142 -0
  8. data/LICENSE +19 -0
  9. data/README.md +12 -0
  10. data/Rakefile +7 -0
  11. data/bin/bundle +114 -0
  12. data/bin/rake +29 -0
  13. data/bin/rspec +29 -0
  14. data/bin/rubocop +29 -0
  15. data/bomb +12 -0
  16. data/config/locales/en.yml +71 -0
  17. data/config/locales/fr.yml +71 -0
  18. data/exe/ssh-hull +12 -0
  19. data/exe/ssh-tunnel +1 -0
  20. data/lib/ssh-hull/cli.rb +113 -0
  21. data/lib/ssh-hull/logger.rb +6 -0
  22. data/lib/ssh-hull/ui/application.rb +47 -0
  23. data/lib/ssh-hull/ui/forms/application_form.rb +69 -0
  24. data/lib/ssh-hull/ui/forms/host_form.rb +27 -0
  25. data/lib/ssh-hull/ui/forms/tunnel_form.rb +31 -0
  26. data/lib/ssh-hull/ui/helpers/application_window_helper.rb +233 -0
  27. data/lib/ssh-hull/ui/helpers/common/form_helper.rb +169 -0
  28. data/lib/ssh-hull/ui/helpers/common/minimize_helper.rb +46 -0
  29. data/lib/ssh-hull/ui/helpers/common/modal_helper.rb +43 -0
  30. data/lib/ssh-hull/ui/helpers/common/toolbar_helper.rb +106 -0
  31. data/lib/ssh-hull/ui/helpers/common/translation_helper.rb +18 -0
  32. data/lib/ssh-hull/ui/helpers/common/tree_view_helper.rb +40 -0
  33. data/lib/ssh-hull/ui/helpers/host_window_helper.rb +230 -0
  34. data/lib/ssh-hull/ui/helpers/tunnel_window_helper.rb +96 -0
  35. data/lib/ssh-hull/ui/models/config.rb +82 -0
  36. data/lib/ssh-hull/ui/models/host.rb +90 -0
  37. data/lib/ssh-hull/ui/models/tunnel.rb +118 -0
  38. data/lib/ssh-hull/ui/status_icon.rb +45 -0
  39. data/lib/ssh-hull/ui/windows/about_window.rb +32 -0
  40. data/lib/ssh-hull/ui/windows/application_window.rb +42 -0
  41. data/lib/ssh-hull/ui/windows/hosts/delete_window.rb +56 -0
  42. data/lib/ssh-hull/ui/windows/hosts/edit_window.rb +39 -0
  43. data/lib/ssh-hull/ui/windows/hosts/new_window.rb +45 -0
  44. data/lib/ssh-hull/ui/windows/tunnels/delete_window.rb +57 -0
  45. data/lib/ssh-hull/ui/windows/tunnels/edit_window.rb +39 -0
  46. data/lib/ssh-hull/ui/windows/tunnels/new_window.rb +45 -0
  47. data/lib/ssh-hull/version.rb +17 -0
  48. data/lib/ssh-tunnel.rb +94 -0
  49. data/resources/gresources.xml +13 -0
  50. data/resources/ui/about_window.glade +48 -0
  51. data/resources/ui/application_window.glade +196 -0
  52. data/resources/ui/hosts/delete_window.glade +74 -0
  53. data/resources/ui/hosts/edit_window.glade +331 -0
  54. data/resources/ui/hosts/new_window.glade +328 -0
  55. data/resources/ui/tunnels/delete_window.glade +73 -0
  56. data/resources/ui/tunnels/edit_window.glade +305 -0
  57. data/resources/ui/tunnels/new_window.glade +305 -0
  58. data/snap/snapcraft.yaml +48 -0
  59. data/spec/factories/host.rb +22 -0
  60. data/spec/factories/tunnel.rb +16 -0
  61. data/spec/spec_helper.rb +31 -0
  62. data/spec/ssh_tunnel/ui/forms/host_form_spec.rb +103 -0
  63. data/spec/ssh_tunnel/ui/forms/tunnel_form_spec.rb +132 -0
  64. data/spec/ssh_tunnel/ui/models/host_spec.rb +116 -0
  65. data/spec/ssh_tunnel/ui/models/tunnel_spec.rb +43 -0
  66. data/spec/ssh_tunnel_spec.rb +45 -0
  67. data/ssh-hull.gemspec +38 -0
  68. metadata +320 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 7109c9af59d23ee6cb020c4305f2ab55ac5b82145db9c12ee1a7365ab1c1bced
4
+ data.tar.gz: 89598ae18e2451b2e9ef6919185cebc23a4d0c9814118e3d546e537397a35dc9
5
+ SHA512:
6
+ metadata.gz: c1951d34c30d8224397fffe00a2a345f906e9d40a6e5d094920341c157b47732cd22cfeddd9414df0c54e202b35b1fd61e40f3bcadc44d853ef0fcea20e1afdf
7
+ data.tar.gz: 8a4b9a068190ce0eaa8f253d03395e0637e454a25bfdd92fe654b12a6ba3751ac91ec38f3510bc1fd3b619a47659e32a20e64ec872a37e676a5a90119ac1d96c
@@ -0,0 +1,44 @@
1
+ ---
2
+ name: CI
3
+
4
+ on:
5
+ - push
6
+ - pull_request
7
+
8
+ jobs:
9
+ rspec:
10
+ runs-on: ubuntu-20.04
11
+ strategy:
12
+ fail-fast: false
13
+ matrix:
14
+ ruby:
15
+ - '3.1'
16
+ - '3.0'
17
+ - '2.7'
18
+
19
+ steps:
20
+ - name: Checkout
21
+ uses: actions/checkout@v2
22
+
23
+ - name: Update APT
24
+ run: |
25
+ sudo apt-get update
26
+ sudo apt-get install -y libgirepository1.0-dev
27
+
28
+ - name: Setup Ruby
29
+ uses: ruby/setup-ruby@v1
30
+ with:
31
+ ruby-version: ${{ matrix.ruby }}
32
+ bundler-cache: true
33
+ cache-version: 1
34
+
35
+ - name: Fake screen
36
+ run: Xvfb :99 &
37
+
38
+ - name: RSpec & publish code coverage
39
+ uses: paambaati/codeclimate-action@v2.7.5
40
+ env:
41
+ CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
42
+ DISPLAY: ':99'
43
+ with:
44
+ coverageCommand: bin/rake
data/.gitignore ADDED
@@ -0,0 +1,27 @@
1
+ # Ignore bundler config.
2
+ /.bundle
3
+
4
+ # RVM files
5
+ /.ruby-version
6
+
7
+ # Gem files
8
+ /*.gem
9
+
10
+ # Glade files
11
+ *.*\~
12
+ *.*\#
13
+
14
+ # Temp files
15
+ /tmp/*
16
+ !/tmp/.keep
17
+
18
+ # SimpleCov files
19
+ /coverage
20
+
21
+ # Translation files
22
+ /locales/*
23
+ !/locales/.keep
24
+
25
+ # Snap files
26
+ /*.snap
27
+ /*.bz2
data/.rubocop.yml ADDED
@@ -0,0 +1,62 @@
1
+ require:
2
+ - rubocop-rake
3
+ - rubocop-rspec
4
+
5
+ AllCops:
6
+ NewCops: enable
7
+ TargetRubyVersion: 2.7
8
+ Exclude:
9
+ - bin/*
10
+ - spec/**/*
11
+
12
+ Documentation:
13
+ Enabled: false
14
+
15
+ Metrics/AbcSize:
16
+ Enabled: false
17
+
18
+ Metrics/MethodLength:
19
+ Max: 12
20
+
21
+ Metrics/ModuleLength:
22
+ Max: 160
23
+
24
+ Metrics/ClassLength:
25
+ Max: 160
26
+
27
+ Layout/LineLength:
28
+ Enabled: false
29
+
30
+ Layout/IndentationConsistency:
31
+ EnforcedStyle: indented_internal_methods
32
+
33
+ Layout/EmptyLines:
34
+ Enabled: false
35
+
36
+ Layout/EmptyLinesAroundClassBody:
37
+ Enabled: false
38
+
39
+ Layout/EmptyLinesAroundBlockBody:
40
+ Enabled: false
41
+
42
+ Layout/EmptyLinesAroundModuleBody:
43
+ Enabled: false
44
+
45
+ Layout/EmptyLineBetweenDefs:
46
+ Enabled: false
47
+
48
+ Layout/HashAlignment:
49
+ Enabled: false
50
+
51
+ Style/CommandLiteral:
52
+ EnforcedStyle: percent_x
53
+
54
+ Style/TrailingCommaInArrayLiteral:
55
+ EnforcedStyleForMultiline: comma
56
+
57
+ Style/TrailingCommaInHashLiteral:
58
+ EnforcedStyleForMultiline: comma
59
+
60
+ Naming/FileName:
61
+ Exclude:
62
+ - lib/ssh-hull.rb
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 3.1.2
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,142 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ ssh-hull (1.0.0)
5
+ activemodel (>= 5.2)
6
+ activesupport (>= 5.2)
7
+ gtk3
8
+ i18n
9
+ ruby2_keywords
10
+ subprocess
11
+ zeitwerk
12
+
13
+ GEM
14
+ remote: https://rubygems.org/
15
+ specs:
16
+ activemodel (7.0.3.1)
17
+ activesupport (= 7.0.3.1)
18
+ activesupport (7.0.3.1)
19
+ concurrent-ruby (~> 1.0, >= 1.0.2)
20
+ i18n (>= 1.6, < 2)
21
+ minitest (>= 5.1)
22
+ tzinfo (~> 2.0)
23
+ ast (2.4.2)
24
+ atk (3.5.1)
25
+ glib2 (= 3.5.1)
26
+ cairo (1.17.5)
27
+ native-package-installer (>= 1.0.3)
28
+ pkg-config (>= 1.2.2)
29
+ red-colors
30
+ cairo-gobject (3.5.1)
31
+ cairo (>= 1.16.2)
32
+ glib2 (= 3.5.1)
33
+ coderay (1.1.3)
34
+ concurrent-ruby (1.1.10)
35
+ diff-lcs (1.5.0)
36
+ docile (1.4.0)
37
+ factory_bot (6.2.1)
38
+ activesupport (>= 5.0.0)
39
+ fiddle (1.1.0)
40
+ gdk3 (3.5.1)
41
+ cairo-gobject (= 3.5.1)
42
+ gdk_pixbuf2 (= 3.5.1)
43
+ pango (= 3.5.1)
44
+ gdk_pixbuf2 (3.5.1)
45
+ gio2 (= 3.5.1)
46
+ gio2 (3.5.1)
47
+ fiddle
48
+ gobject-introspection (= 3.5.1)
49
+ glib2 (3.5.1)
50
+ native-package-installer (>= 1.0.3)
51
+ pkg-config (>= 1.3.5)
52
+ gobject-introspection (3.5.1)
53
+ glib2 (= 3.5.1)
54
+ gtk3 (3.5.1)
55
+ atk (= 3.5.1)
56
+ gdk3 (= 3.5.1)
57
+ gdk_pixbuf2 (= 3.5.1)
58
+ gio2 (= 3.5.1)
59
+ pango (= 3.5.1)
60
+ i18n (1.12.0)
61
+ concurrent-ruby (~> 1.0)
62
+ json (2.6.2)
63
+ matrix (0.4.2)
64
+ method_source (1.0.0)
65
+ minitest (5.16.2)
66
+ native-package-installer (1.1.4)
67
+ pango (3.5.1)
68
+ cairo-gobject (= 3.5.1)
69
+ gobject-introspection (= 3.5.1)
70
+ parallel (1.22.1)
71
+ parser (3.1.2.0)
72
+ ast (~> 2.4.1)
73
+ pkg-config (1.4.7)
74
+ pry (0.14.1)
75
+ coderay (~> 1.1)
76
+ method_source (~> 1.0)
77
+ rainbow (3.1.1)
78
+ rake (13.0.6)
79
+ red-colors (0.3.0)
80
+ matrix
81
+ regexp_parser (2.5.0)
82
+ rexml (3.2.5)
83
+ rspec (3.11.0)
84
+ rspec-core (~> 3.11.0)
85
+ rspec-expectations (~> 3.11.0)
86
+ rspec-mocks (~> 3.11.0)
87
+ rspec-core (3.11.0)
88
+ rspec-support (~> 3.11.0)
89
+ rspec-expectations (3.11.0)
90
+ diff-lcs (>= 1.2.0, < 2.0)
91
+ rspec-support (~> 3.11.0)
92
+ rspec-mocks (3.11.1)
93
+ diff-lcs (>= 1.2.0, < 2.0)
94
+ rspec-support (~> 3.11.0)
95
+ rspec-support (3.11.0)
96
+ rubocop (1.31.2)
97
+ json (~> 2.3)
98
+ parallel (~> 1.10)
99
+ parser (>= 3.1.0.0)
100
+ rainbow (>= 2.2.2, < 4.0)
101
+ regexp_parser (>= 1.8, < 3.0)
102
+ rexml (>= 3.2.5, < 4.0)
103
+ rubocop-ast (>= 1.18.0, < 2.0)
104
+ ruby-progressbar (~> 1.7)
105
+ unicode-display_width (>= 1.4.0, < 3.0)
106
+ rubocop-ast (1.19.1)
107
+ parser (>= 3.1.1.0)
108
+ rubocop-rake (0.6.0)
109
+ rubocop (~> 1.0)
110
+ rubocop-rspec (2.12.1)
111
+ rubocop (~> 1.31)
112
+ ruby-progressbar (1.11.0)
113
+ ruby2_keywords (0.0.5)
114
+ simplecov (0.21.2)
115
+ docile (~> 1.1)
116
+ simplecov-html (~> 0.11)
117
+ simplecov_json_formatter (~> 0.1)
118
+ simplecov-html (0.12.3)
119
+ simplecov_json_formatter (0.1.4)
120
+ subprocess (1.5.6)
121
+ tzinfo (2.0.4)
122
+ concurrent-ruby (~> 1.0)
123
+ unicode-display_width (2.2.0)
124
+ zeitwerk (2.6.0)
125
+
126
+ PLATFORMS
127
+ ruby
128
+ x86_64-linux
129
+
130
+ DEPENDENCIES
131
+ factory_bot
132
+ pry
133
+ rake
134
+ rspec
135
+ rubocop
136
+ rubocop-rake
137
+ rubocop-rspec
138
+ simplecov
139
+ ssh-hull!
140
+
141
+ BUNDLED WITH
142
+ 2.3.7
data/LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ The MIT License (MIT)
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,12 @@
1
+ [![GitHub license](https://img.shields.io/github/license/ungtb10d/ssh-hull.svg)](https://github.com/ungtb10d/ssh-hull/blob/master/LICENSE)
2
+ [![GitHub release](https://img.shields.io/github/release/ungtb10d/ssh-hull.svg)](https://github.com/ungtb10d/ssh-hull/releases/latest)
3
+ [![CI](https://github.com/ungtb10d/ssh-hull/workflows/CI/badge.svg)](https://github.com/ungtb10d/ssh-hull/actions)
4
+ [![Code Climate](https://codeclimate.com/github/ungtb10d/ssh-hull/badges/gpa.svg)](https://codeclimate.com/github/ungtb10d/ssh-hull)
5
+ [![Test Coverage](https://codeclimate.com/github/ungtb10d/ssh-hull/badges/coverage.svg)](https://codeclimate.com/github/ungtb10d/ssh-hull/coverage)
6
+
7
+ ## SSH Tunnel
8
+
9
+ A Ruby/GTK3 gem to manage ssh hulls
10
+
11
+ ## Installation
12
+
data/Rakefile ADDED
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
5
+
6
+ RSpec::Core::RakeTask.new(:spec)
7
+ task default: :spec
data/bin/bundle ADDED
@@ -0,0 +1,114 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'bundle' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require "rubygems"
12
+
13
+ m = Module.new do
14
+ module_function
15
+
16
+ def invoked_as_script?
17
+ File.expand_path($0) == File.expand_path(__FILE__)
18
+ end
19
+
20
+ def env_var_version
21
+ ENV["BUNDLER_VERSION"]
22
+ end
23
+
24
+ def cli_arg_version
25
+ return unless invoked_as_script? # don't want to hijack other binstubs
26
+ return unless "update".start_with?(ARGV.first || " ") # must be running `bundle update`
27
+ bundler_version = nil
28
+ update_index = nil
29
+ ARGV.each_with_index do |a, i|
30
+ if update_index && update_index.succ == i && a =~ Gem::Version::ANCHORED_VERSION_PATTERN
31
+ bundler_version = a
32
+ end
33
+ next unless a =~ /\A--bundler(?:[= ](#{Gem::Version::VERSION_PATTERN}))?\z/
34
+ bundler_version = $1
35
+ update_index = i
36
+ end
37
+ bundler_version
38
+ end
39
+
40
+ def gemfile
41
+ gemfile = ENV["BUNDLE_GEMFILE"]
42
+ return gemfile if gemfile && !gemfile.empty?
43
+
44
+ File.expand_path("../../Gemfile", __FILE__)
45
+ end
46
+
47
+ def lockfile
48
+ lockfile =
49
+ case File.basename(gemfile)
50
+ when "gems.rb" then gemfile.sub(/\.rb$/, gemfile)
51
+ else "#{gemfile}.lock"
52
+ end
53
+ File.expand_path(lockfile)
54
+ end
55
+
56
+ def lockfile_version
57
+ return unless File.file?(lockfile)
58
+ lockfile_contents = File.read(lockfile)
59
+ return unless lockfile_contents =~ /\n\nBUNDLED WITH\n\s{2,}(#{Gem::Version::VERSION_PATTERN})\n/
60
+ Regexp.last_match(1)
61
+ end
62
+
63
+ def bundler_version
64
+ @bundler_version ||=
65
+ env_var_version || cli_arg_version ||
66
+ lockfile_version
67
+ end
68
+
69
+ def bundler_requirement
70
+ return "#{Gem::Requirement.default}.a" unless bundler_version
71
+
72
+ bundler_gem_version = Gem::Version.new(bundler_version)
73
+
74
+ requirement = bundler_gem_version.approximate_recommendation
75
+
76
+ return requirement unless Gem::Version.new(Gem::VERSION) < Gem::Version.new("2.7.0")
77
+
78
+ requirement += ".a" if bundler_gem_version.prerelease?
79
+
80
+ requirement
81
+ end
82
+
83
+ def load_bundler!
84
+ ENV["BUNDLE_GEMFILE"] ||= gemfile
85
+
86
+ activate_bundler
87
+ end
88
+
89
+ def activate_bundler
90
+ gem_error = activation_error_handling do
91
+ gem "bundler", bundler_requirement
92
+ end
93
+ return if gem_error.nil?
94
+ require_error = activation_error_handling do
95
+ require "bundler/version"
96
+ end
97
+ return if require_error.nil? && Gem::Requirement.new(bundler_requirement).satisfied_by?(Gem::Version.new(Bundler::VERSION))
98
+ warn "Activating bundler (#{bundler_requirement}) failed:\n#{gem_error.message}\n\nTo install the version of bundler this project requires, run `gem install bundler -v '#{bundler_requirement}'`"
99
+ exit 42
100
+ end
101
+
102
+ def activation_error_handling
103
+ yield
104
+ nil
105
+ rescue StandardError, LoadError => e
106
+ e
107
+ end
108
+ end
109
+
110
+ m.load_bundler!
111
+
112
+ if m.invoked_as_script?
113
+ load Gem.bin_path("bundler", "bundle")
114
+ end
data/bin/rake ADDED
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'rake' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require "pathname"
12
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
+ Pathname.new(__FILE__).realpath)
14
+
15
+ bundle_binstub = File.expand_path("../bundle", __FILE__)
16
+
17
+ if File.file?(bundle_binstub)
18
+ if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
+ load(bundle_binstub)
20
+ else
21
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
+ end
24
+ end
25
+
26
+ require "rubygems"
27
+ require "bundler/setup"
28
+
29
+ load Gem.bin_path("rake", "rake")
data/bin/rspec ADDED
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'rspec' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require "pathname"
12
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
+ Pathname.new(__FILE__).realpath)
14
+
15
+ bundle_binstub = File.expand_path("../bundle", __FILE__)
16
+
17
+ if File.file?(bundle_binstub)
18
+ if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
+ load(bundle_binstub)
20
+ else
21
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
+ end
24
+ end
25
+
26
+ require "rubygems"
27
+ require "bundler/setup"
28
+
29
+ load Gem.bin_path("rspec-core", "rspec")
data/bin/rubocop ADDED
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'rubocop' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require "pathname"
12
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
+ Pathname.new(__FILE__).realpath)
14
+
15
+ bundle_binstub = File.expand_path("../bundle", __FILE__)
16
+
17
+ if File.file?(bundle_binstub)
18
+ if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
+ load(bundle_binstub)
20
+ else
21
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
+ end
24
+ end
25
+
26
+ require "rubygems"
27
+ require "bundler/setup"
28
+
29
+ load Gem.bin_path("rubocop", "rubocop")
data/bomb ADDED
@@ -0,0 +1,12 @@
1
+ ____
2
+ __,-~~/~ `---.
3
+ _/_,---( , )
4
+ __ / < / ) \___
5
+ - ------===;;;'====--oops, så leit da===;;;===----- - -
6
+ \/ ~"~"~"~"~"~\~"~)~"/
7
+ (_ ( \ ( > \)
8
+ \_( _ < >_>'
9
+ ~ `-i' ::>|--"
10
+ I;|.|.|
11
+ <|i::|i|`.
12
+ (` ^'"`-' ")
@@ -0,0 +1,71 @@
1
+ ---
2
+ en:
3
+ menu:
4
+ quit: Quit
5
+ about: About
6
+
7
+ window:
8
+ host:
9
+ new: New Host
10
+ edit: "Edit Host - %{host}"
11
+ remove: "Remove Host - %{host}"
12
+ tunnel:
13
+ new: New Tunnel
14
+ edit: "Edit Tunnel - %{tunnel}"
15
+ remove: "Remove Tunnel - %{tunnel}"
16
+
17
+ tooltip:
18
+ host:
19
+ add: Add Host
20
+ edit: Edit Host
21
+ remove: Remove Host
22
+ tunnel:
23
+ add: Add Tunnel
24
+ edit: Edit Tunnel
25
+ remove: Remove Tunnel
26
+ start: Start Tunnel
27
+ stop: Stop Tunnel
28
+
29
+ form:
30
+ host:
31
+ name: Name
32
+ user: User
33
+ host: Host
34
+ port: Port
35
+ identity_file: Identity File
36
+ tunnel:
37
+ name: Name
38
+ type: Type
39
+ local: Local
40
+ remote: Remote
41
+ local_host: Local Host
42
+ local_port: Local Port
43
+ remote_host: Remote Host
44
+ remote_port: Remote Port
45
+ auto_start: Auto Start
46
+
47
+ button:
48
+ add: Add
49
+ edit: Edit
50
+ remove: Remove
51
+ cancel: Cancel
52
+ submit: Save
53
+ reset: Reset
54
+
55
+ view:
56
+ host:
57
+ state: State
58
+ uuid: UUID
59
+ name: Name
60
+ user: User
61
+ host: Host
62
+ port: Port
63
+ tunnel:
64
+ uuid: UUID
65
+ name: Name
66
+ type: Type
67
+ local_host: Local Host
68
+ local_port: Local Port
69
+ remote_host: Remote Host
70
+ remote_port: Remote Port
71
+ auto_start: Auto Start
@@ -0,0 +1,71 @@
1
+ ---
2
+ fr:
3
+ menu:
4
+ quit: Quitter
5
+ about: A propos
6
+
7
+ window:
8
+ host:
9
+ new: Nouvel hôte
10
+ edit: "Modifier l'hôte - %{host}"
11
+ remove: "Supprimer l'hôte - %{host}"
12
+ tunnel:
13
+ new: Nouveau tunnel
14
+ edit: "Modifier le tunnel - %{tunnel}"
15
+ remove: "Supprimer le tunnel - %{tunnel}"
16
+
17
+ tooltip:
18
+ host:
19
+ add: Ajouter un hôte
20
+ edit: Modifier l'hôte
21
+ remove: Supprimer l'hôte
22
+ tunnel:
23
+ add: Ajouter un tunnel
24
+ edit: Modifier le tunnel
25
+ remove: Supprimer le tunnel
26
+ start: Démarrer le tunnel
27
+ stop: Arrêter le tunnel
28
+
29
+ form:
30
+ host:
31
+ name: Nom
32
+ user: Utilisateur
33
+ host: Hôte
34
+ port: Port
35
+ identity_file: Clé SSH
36
+ tunnel:
37
+ name: Nom
38
+ type: Type
39
+ local: Local
40
+ remote: Distant
41
+ local_host: Hôte local
42
+ local_port: Port local
43
+ remote_host: Hôte distant
44
+ remote_port: Port distant
45
+ auto_start: Démarrage auto
46
+
47
+ button:
48
+ add: Ajouter
49
+ edit: Modifier
50
+ remove: Supprimer
51
+ cancel: Annuler
52
+ submit: Enregistrer
53
+ reset: Reset
54
+
55
+ view:
56
+ host:
57
+ state: Etat
58
+ uuid: UUID
59
+ name: Nom
60
+ user: Utilisateur
61
+ host: Hôte
62
+ port: Port
63
+ tunnel:
64
+ uuid: UUID
65
+ name: Nom
66
+ type: Type
67
+ local_host: Hôte local
68
+ local_port: Port local
69
+ remote_host: Hôte distant
70
+ remote_port: Port distant
71
+ auto_start: Démarrage auto