blade-sauce_labs_plugin 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b206ddc9702aa07cc6b03ea4556918b15f1de0a6
4
+ data.tar.gz: 8bced80631835f11970a9372fc44f3e004345049
5
+ SHA512:
6
+ metadata.gz: 3d98f623b3450309161ff05051a6936e9e9c8c2a57ee2669f24d3fc10ec94642d87a1dd11439be33d0a558aa70f63c2e75e60291c8ad26ce71893d339db2bf82
7
+ data.tar.gz: ab463d62969ff338fe981d8924c8d2c41a3781a9b351a96239d4a15bb691ff7f9b48026d8e58bb351f5366e27c564eddbde8b5fa9029cf016535718b21469754
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in blade-sauce_labs_plugin.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015 Javan Makhmali
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1 @@
1
+ [Blade](https://github.com/javan/blade) plugin for [Sauce Labs](https://saucelabs.com/)
data/Rakefile ADDED
@@ -0,0 +1,12 @@
1
+ require "rake"
2
+ require "rake/testtask"
3
+ require "bundler/gem_tasks"
4
+
5
+ task default: :test
6
+
7
+ Rake::TestTask.new(:test) do |t|
8
+ t.libs << "test"
9
+ t.pattern = "test/*_test.rb"
10
+ t.verbose = true
11
+ end
12
+ Rake::Task[:test].comment = "Run tests"
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "blade/sauce_labs_plugin"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
data/bin/rake ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'rake' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('rake', 'rake')
data/bin/setup ADDED
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ bundle install
6
+
7
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,28 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'blade/sauce_labs_plugin/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "blade-sauce_labs_plugin"
8
+ spec.version = Blade::SauceLabsPlugin::VERSION
9
+ spec.authors = ["Javan Makhmali"]
10
+ spec.email = ["javan@javan.us"]
11
+
12
+ spec.summary = %q{Blade Runner plugin for Sauce Labs (saucelabs.com)}
13
+ spec.homepage = "https://github.com/javan/blade-sauce_labs_plugin"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
+ spec.bindir = "exe"
18
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.10"
22
+ spec.add_development_dependency "rake", "~> 10.0"
23
+ spec.add_development_dependency "webmock", "~> 1.21.0"
24
+
25
+ spec.add_dependency "blade"
26
+ spec.add_dependency "faraday"
27
+ spec.add_dependency "childprocess"
28
+ end
@@ -0,0 +1,62 @@
1
+ require "blade"
2
+ require "blade/sauce_labs_plugin/version"
3
+ require "blade/sauce_labs_plugin/cli"
4
+
5
+ require "active_support/core_ext/string/inflections"
6
+
7
+ module Blade::SauceLabsPlugin
8
+ extend self
9
+ include Blade::Component
10
+
11
+ autoload :Client, "blade/sauce_labs_plugin/client"
12
+ autoload :Tunnel, "blade/sauce_labs_plugin/tunnel"
13
+
14
+ def start
15
+ if Blade.config.interface == :ci
16
+ Tunnel.start
17
+ Blade.config.expected_sessions = Client.platforms.size
18
+ Client.request(:post, "rest/v1/#{username}/js-tests", test_params)
19
+ end
20
+ end
21
+
22
+ def stop
23
+ Tunnel.stop
24
+ end
25
+
26
+ def config
27
+ Blade.plugins.sauce_labs.config
28
+ end
29
+
30
+ def username
31
+ config.username || ENV["SAUCE_USERNAME"]
32
+ end
33
+
34
+ def access_key
35
+ config.access_key || ENV["SAUCE_ACCESS_KEY"]
36
+ end
37
+
38
+ private
39
+ def test_params
40
+ { url: Blade.url, platforms: Client.platforms, framework: Blade.config.framework }.merge(default_test_config).merge(test_config)
41
+ end
42
+
43
+ def default_test_config
44
+ { build: rev, max_duration: 200 }
45
+ end
46
+
47
+ def rev
48
+ @rev ||= `git rev-parse HEAD`.chomp
49
+ end
50
+
51
+ def test_config
52
+ if config.test_config
53
+ {}.tap do |result|
54
+ config.test_config.each do |key, value|
55
+ result[key.to_s.camelize(:lower)] = value
56
+ end
57
+ end
58
+ else
59
+ {}
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,31 @@
1
+ module Blade::SauceLabsPlugin::CLI
2
+ class Sauce < Thor
3
+ desc "browsers", "Show available browsers"
4
+ def browsers
5
+ browsers = Blade::SauceLabsPlugin::Client.available_platforms_by_browser
6
+
7
+ puts
8
+ puts "Available browsers on Sauce Labs"
9
+ puts "--------------------------------"
10
+ puts
11
+
12
+ browsers.keys.sort_by(&:downcase).each do |name|
13
+ puts "#{name}:"
14
+ browsers[name].each do |os, details|
15
+ versions = details[:versions].map do |version|
16
+ if version.to_i.to_s == version
17
+ version.to_i
18
+ else
19
+ version
20
+ end
21
+ end
22
+ puts " #{os}: #{versions.join(', ')}"
23
+ end
24
+
25
+ puts
26
+ end
27
+ end
28
+ end
29
+ end
30
+
31
+ Blade::CLI.register Blade::SauceLabsPlugin::CLI::Sauce, "sauce", "sauce COMMAND", "Sauce Labs commands"
@@ -0,0 +1,115 @@
1
+ require "faraday"
2
+ require "json"
3
+
4
+ module Blade::SauceLabsPlugin::Client
5
+ extend self
6
+
7
+ ALIASES = {
8
+ "ie" => "Internet Explorer",
9
+ "IE" => "Internet Explorer"
10
+ }
11
+
12
+ extend Forwardable
13
+ def_delegators Blade::SauceLabsPlugin, :config, :username, :access_key
14
+
15
+ def request(method, path, params = {})
16
+ connection.send(method) do |req|
17
+ req.url path
18
+ req.headers["Content-Type"] = "application/json"
19
+ req.body = params.to_json
20
+ end
21
+ end
22
+
23
+ def platforms
24
+ [].tap do |platforms|
25
+ config.browsers.each do |name, config|
26
+ browser =
27
+ case config
28
+ when String, Numeric
29
+ { version: config }
30
+ when Hash
31
+ config.symbolize_keys
32
+ else
33
+ {}
34
+ end.merge(name: name)
35
+
36
+ platforms.concat platforms_for_browser(browser)
37
+ end
38
+ end
39
+ end
40
+
41
+ def platforms_for_browser(browser)
42
+ long_name = find_browser_long_name(browser[:name])
43
+ platforms = available_platforms_by_browser[long_name]
44
+ platform_versions = platforms.flat_map { |os, details| details[:versions] }.uniq.sort_by(&:to_f).reverse
45
+
46
+ versions =
47
+ if browser[:version].is_a?(Numeric) && browser[:version] < 0
48
+ platform_versions.select { |v| v =~ /^\d/ }.first(browser[:version].abs.to_i)
49
+ elsif browser[:version].present?
50
+ Array(browser[:version]).map(&:to_s)
51
+ else
52
+ platform_versions.first(1)
53
+ end
54
+
55
+ if browser[:os]
56
+ Array(browser[:os]).flat_map do |browser_os|
57
+ versions.map do |version|
58
+ os = platforms.keys.detect { |os| os =~ Regexp.new(browser_os, Regexp::IGNORECASE) }
59
+ platforms[os][:api][version].first
60
+ end
61
+ end
62
+ else
63
+ versions.map do |version|
64
+ os = platforms.detect { |os, details| details[:api][version].any? }.first
65
+ platforms[os][:api][version].first
66
+ end
67
+ end
68
+ end
69
+
70
+ def find_browser_long_name(name)
71
+ if match = ALIASES[name.to_s]
72
+ match
73
+ else
74
+ available_platforms_by_browser.keys.detect do |long_name|
75
+ long_name =~ Regexp.new(name, Regexp::IGNORECASE)
76
+ end
77
+ end
78
+ end
79
+
80
+ def available_platforms_by_browser
81
+ @available_platforms_by_browser ||= {}.tap do |by_browser|
82
+ available_platforms.group_by { |p| p[:api_name] }.each do |api_name, platforms|
83
+ long_name = platforms.first[:long_name]
84
+ by_browser[long_name] = {}
85
+
86
+ platforms.group_by { |p| p[:os].split(" ").first }.each do |os, platforms|
87
+ by_browser[long_name][os] = {}
88
+ by_browser[long_name][os][:versions] = []
89
+ by_browser[long_name][os][:api] = {}
90
+
91
+ versions = platforms.map { |p| p[:short_version] }.uniq.sort_by(&:to_f).reverse
92
+
93
+ versions.each do |version|
94
+ by_browser[long_name][os][:versions] << version
95
+
96
+ by_browser[long_name][os][:api][version] = platforms.map do |platform|
97
+ if platform[:short_version] == version
98
+ platform.values_at(:os, :api_name, :short_version)
99
+ end
100
+ end.compact
101
+ end
102
+ end
103
+ end
104
+ end
105
+ end
106
+
107
+ private
108
+ def connection
109
+ @connnection ||= Faraday.new("https://#{username}:#{access_key}@saucelabs.com/")
110
+ end
111
+
112
+ def available_platforms
113
+ @available_platforms ||= JSON.parse(connection.get("/rest/v1/info/platforms/webdriver").body).map(&:symbolize_keys)
114
+ end
115
+ end
@@ -0,0 +1,48 @@
1
+ require "childprocess"
2
+
3
+ module Blade::SauceLabsPlugin::Tunnel
4
+ extend self
5
+
6
+ extend Forwardable
7
+ def_delegators Blade::SauceLabsPlugin, :username, :access_key
8
+
9
+ def start
10
+ return if @process
11
+ cmd = Pathname.new(File.dirname(__FILE__)).join("../../../support/sc-#{os}/bin/sc").to_s
12
+ @process = ChildProcess.build(cmd, "--user", username, "--api-key", access_key)
13
+ reader, writer = IO.pipe
14
+ @process.io.stdout = @process.io.stderr = writer
15
+ @process.start
16
+
17
+ output = ""
18
+ while line = reader.gets
19
+ output << line
20
+ case line
21
+ when /Sauce Connect is up, you may start your tests/
22
+ break
23
+ when /Goodbye/
24
+ STDERR.puts output
25
+ raise "Sauce Connect tunnel connection error"
26
+ end
27
+ end
28
+
29
+ ensure
30
+ writer.close if writer
31
+ reader.close if reader
32
+ end
33
+
34
+ def stop
35
+ return unless @process
36
+ @process.stop
37
+ end
38
+
39
+ private
40
+ def os
41
+ @os ||=
42
+ case RUBY_PLATFORM.downcase
43
+ when /linux/ then :linux
44
+ when /darwin/ then :osx
45
+ when /windows/ then :windows
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,5 @@
1
+ module Blade
2
+ module SauceLabsPlugin
3
+ VERSION = "0.2.0"
4
+ end
5
+ end
Binary file
@@ -0,0 +1,154 @@
1
+ #ifndef _SAUCECONNECT_H
2
+ #define _SAUCECONNECT_H
3
+
4
+ #include <stddef.h>
5
+
6
+ /*
7
+ * The definition of this structure is hidden from the API to be able to
8
+ * provide ABI compatibility if our Sauce Connect implementation changes. Use
9
+ * sc_new() and sc_free() to create/free it.
10
+ */
11
+ struct sc_ctx;
12
+
13
+ /*
14
+ * Create/free a new Sauce Connect context. This can be called multiple times
15
+ * to create independent instances, to e.g. use multiple accounts.
16
+ */
17
+ struct sc_ctx *sc_new(void);
18
+ void sc_free(struct sc_ctx *ctx);
19
+
20
+ /*
21
+ * Setter/getter for configuration parameters. vlen is the size of value. Do
22
+ * this before calling sc_init().
23
+ */
24
+ #define SC_PARAM_IS_SERVER 0x01 /* int */
25
+ #define SC_PARAM_KGP_HOST 0x02 /* char * */
26
+ #define SC_PARAM_KGP_PORT 0x03 /* int */
27
+ #define SC_PARAM_EXT_HOST 0x04 /* char * */
28
+ #define SC_PARAM_EXT_PORT 0x05 /* int */
29
+ #define SC_PARAM_CERTFILE 0x06 /* char * */
30
+ #define SC_PARAM_KEYFILE 0x07 /* char * */
31
+ #define SC_PARAM_LOCAL_PORT 0x08 /* int */
32
+ #define SC_PARAM_USER 0x09 /* char * */
33
+ #define SC_PARAM_API_KEY 0x0a /* char * */
34
+ #define SC_PARAM_PROXY 0x0b /* char * */
35
+ #define SC_PARAM_PROXY_USERPWD 0x0c /* char * */
36
+ #define SC_PARAM_RECONNECT 0x0d /* int */
37
+ #define SC_PARAM_DNS_SERVERS 0x0e /* char * */
38
+ int sc_get(struct sc_ctx *ctx, int param, void *value, size_t vlen);
39
+ int sc_set(struct sc_ctx *ctx, int param, void *value);
40
+
41
+ /*
42
+ * Once we have set up our ctx, do some initialization. This makes sure
43
+ * everything is ready to start a new connection. Do this only after
44
+ * parameters are set via sc_set().
45
+ */
46
+ int sc_init(struct sc_ctx *ctx);
47
+
48
+ /*
49
+ * Run the main event loop: connect to the peer, and start forwarding. Only
50
+ * returns if sc_stop() is called from another thread, or a fatal error
51
+ * happens Sauce Connect can't recover from.
52
+ */
53
+ int sc_run(struct sc_ctx *ctx);
54
+
55
+ /*
56
+ * Stop the Sauce Connect main event loop. This can be used from e.g. another
57
+ * thread to stop SC in a clean way.
58
+ */
59
+ int sc_stop(struct sc_ctx *ctx);
60
+
61
+ /*
62
+ * Get the current status of Sauce Connect.
63
+ */
64
+ #define SC_STATUS_RUNNING 0x01
65
+ #define SC_STATUS_EXITING 0x02
66
+ int sc_status(struct sc_ctx *ctx);
67
+
68
+ /*
69
+ * Get information on Sauce Connect internals.
70
+ */
71
+ #define SC_INFO_KGP_IS_CONNECTED 0x01
72
+ #define SC_INFO_KGP_LAST_STATUS_CHANGE 0x02
73
+ int sc_get_info(struct sc_ctx *ctx, int what, int *info);
74
+
75
+ /*
76
+ * Set a log callback the library will call when logging messages.
77
+ */
78
+ typedef void (*sc_log_cb)(int severity, const char *msg);
79
+
80
+ void sc_set_log_fn(sc_log_cb cb);
81
+
82
+ #define SC_EXITCODE_UNKNOWN 0
83
+ #define SC_EXITCODE_ALLOC_ERROR 1
84
+ #define SC_EXITCODE_LOCAL_LISTEN_ERROR 2
85
+ #define SC_EXITCODE_LOCAL_ACCEPT_ERROR 3
86
+ #define SC_EXITCODE_KGP_INVALID_PACKET 4
87
+ #define SC_EXITCODE_KGP_CONNECT_ERROR 5
88
+ #define SC_EXITCODE_KGP_CONNECTION_CLOSED 6
89
+ #define SC_EXITCODE_KGP_LISTEN_ERROR 7
90
+ #define SC_EXITCODE_CMD_STOP 8
91
+ #define SC_EXITCODE_CMD_SOCKET_ERROR 9
92
+ #define SC_EXITCODE_CMD_CONNECTION_CLOSED 10
93
+ #define SC_EXITCODE_DNS_RESET_ERROR 11
94
+ int sc_error(struct sc_ctx *ctx);
95
+
96
+ static inline char *sc_err2str(int exitcode)
97
+ {
98
+ switch (exitcode) {
99
+ case SC_EXITCODE_UNKNOWN:
100
+ return "Unknown error or no error occured";
101
+ break;
102
+ case SC_EXITCODE_ALLOC_ERROR:
103
+ return "Allocation failed - out of memory?";
104
+ break;
105
+ case SC_EXITCODE_LOCAL_LISTEN_ERROR:
106
+ return "Failed to start Selenium listener. "
107
+ "Please make sure there are no other applications using "
108
+ "the Selenium port, or specify an alternative port for "
109
+ "Sauce Connect via the --se-port option";
110
+ break;
111
+ case SC_EXITCODE_LOCAL_ACCEPT_ERROR:
112
+ return "Failed to accept Selenium connection";
113
+ break;
114
+ case SC_EXITCODE_KGP_INVALID_PACKET:
115
+ return "Invalid KGP packet received";
116
+ break;
117
+ case SC_EXITCODE_KGP_CONNECT_ERROR:
118
+ return "KGP connection error";
119
+ break;
120
+ case SC_EXITCODE_KGP_CONNECTION_CLOSED:
121
+ return "KGP connection closed from the other side";
122
+ break;
123
+ case SC_EXITCODE_KGP_LISTEN_ERROR:
124
+ return "Failed to start KGP listener";
125
+ break;
126
+ case SC_EXITCODE_CMD_STOP:
127
+ return "Terminated";
128
+ break;
129
+ case SC_EXITCODE_CMD_SOCKET_ERROR:
130
+ return "Internal error: command socket failure";
131
+ break;
132
+ case SC_EXITCODE_CMD_CONNECTION_CLOSED:
133
+ return "Internal error: command socket closed";
134
+ break;
135
+ case SC_EXITCODE_DNS_RESET_ERROR:
136
+ return "DNS reset failed";
137
+ break;
138
+ default:
139
+ return "Invalid exit code";
140
+ break;
141
+ }
142
+ }
143
+
144
+ /*
145
+ * Enable SSL verification for KGP. This is the default.
146
+ */
147
+ void sc_ssl_enable_verification(void);
148
+
149
+ /*
150
+ * Disable SSL verification for KGP. This is the default.
151
+ */
152
+ void sc_ssl_disable_verification(void);
153
+
154
+ #endif
@@ -0,0 +1,41 @@
1
+ # libsauceconnect.la - a libtool library file
2
+ # Generated by libtool (GNU libtool) 2.4.2
3
+ #
4
+ # Please DO NOT delete this file!
5
+ # It is necessary for linking the library.
6
+
7
+ # The name that we can dlopen(3).
8
+ dlname=''
9
+
10
+ # Names of this library.
11
+ library_names=''
12
+
13
+ # The name of the static archive.
14
+ old_library='libsauceconnect.a'
15
+
16
+ # Linker flags that can not go in dependency_libs.
17
+ inherited_linker_flags=' -pthread'
18
+
19
+ # Libraries that this one depends upon.
20
+ dependency_libs=' -L/build/build/Linux/openssl/lib -L/build/curl/ares /build/build/sc-build-1757/lib/libevent.la /build/build/sc-build-1757/lib/libevent_openssl.la /build/build/sc-build-1757/lib/libcares.la /build/build/sc-build-1757/lib/libcurl.la /build/build/sc-build-1757/lib/libcares.la -lz -lrt /build/build/sc-build-1757/lib/libunwind.la -lc -lgcc -lssl -lcrypto -ldl'
21
+
22
+ # Names of additional weak libraries provided by this library
23
+ weak_library_names=''
24
+
25
+ # Version information for libsauceconnect.
26
+ current=0
27
+ age=0
28
+ revision=0
29
+
30
+ # Is this an already installed library?
31
+ installed=yes
32
+
33
+ # Should we warn about portability when linking against -modules?
34
+ shouldnotlink=no
35
+
36
+ # Files to dlopen/dlpreopen
37
+ dlopen=''
38
+ dlpreopen=''
39
+
40
+ # Directory that this library needs to be installed in:
41
+ libdir='/build/build/sc-build-1757/lib'
@@ -0,0 +1,116 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2
+ "http://www.w3.org/TR/html4/loose.dtd">
3
+ <html>
4
+ <head>
5
+ <title>Sauce Connect License</title>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
7
+ </head>
8
+ <body>
9
+ <div style="margin-bottom: 40px">
10
+ <center><h3>
11
+ SAUCE LABS INC <br />
12
+ END USER LICENSE AGREEMENT (“EULA”) <br />
13
+ for: <br />
14
+ Public Release of Sauce Connect <br />
15
+ </h3></center>
16
+ </div>
17
+
18
+ <p><b>
19
+ READ THIS AGREEMENT CAREFULLY.
20
+ </b></p>
21
+ <p>
22
+ BY CLICKING ON THE “I AGREE” BUTTON OR INSTALLING OR USING ALL OR ANY PORTION OF THE SOFTWARE, YOU ARE ACCEPTING ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. YOU AGREE THAT THIS AGREEMENT IS ENFORCEABLE LIKE ANY WRITTEN AGREEMENT SIGNED BY YOU.
23
+ </p><p>
24
+ IF YOU DO NOT AGREE TO ALL OF THESE TERMS AND CONDITIONS, CLICK “I DON’T AGREE”. YOU WILL NOT BE GIVEN ACCESS TO THE SOFTWARE UNLESS YOU ACCEPT THE TERMS OF THIS AGREEMENT. IF YOU HAVE PAID A LICENSE FEE FOR USE OF THE SOFTWARE AND DO NOT AGREE TO THESE TERMS, YOU MAY RETURN OR CONFIRM DELETION OF ALL COPIES OF THE SOFTWARE FOR A FULL REFUND PROVIDED YOU (A) DO NOT USE THE SOFTWARE AND (B) RETURN THE SOFTWARE WITHIN THIRTY (30) DAYS OF YOUR INITIAL PURCHASE.
25
+ </p><p>
26
+ IF YOU WISH TO USE the Software AS AN EMPLOYEE, CONTRACTOR, OR AGENT OF A CORPORATION, PARTNERSHIP OR SIMILAR ENTITY, THEN YOU MUST BE AUTHORIZED TO SIGN FOR AND BIND THE ENTITY IN ORDER TO ACCEPT THE TERMS OF THIS AGREEMENT. THE LICENSES GRANTED UNDER THIS AGREEMENT ARE EXPRESSLY CONDITIONED UPON ACCEPTANCE BY SUCH AUTHORIZED PERSONNEL.
27
+ </p><p>
28
+ IF YOU HAVE ENTERED INTO A SEPARATE WRITTEN LICENSE AGREEMENT WITH SAUCE LABS FOR USE OF THE SOFTWARE, THE TERMS AND CONDITIONS OF SUCH OTHER AGREEMENT SHALL PREVAIL OVER ANY CONFLICTING TERMS OR CONDITIONS IN THIS AGREEMENT.
29
+ </p><p>
30
+ This End User License Agreement (“Agreement”) is between Sauce Labs Inc, located at 55 Sheridan St., San Francisco, CA 94103 (“Sauce Labs”) and the customer (individual or entity) that has downloaded or otherwise procured the licensed Software (as defined below) for use as an end user (“you”). This Agreement covers any Software and supporting technical documentation provided with the Software (“Documentation”).
31
+ </p>
32
+ <div>
33
+ <h4>1. Definitions. </h4>
34
+ <p>
35
+ <u>Effective Date:</u> means the earlier of the date you sign an Order Form or the date on which the Software is first made available to you.
36
+ Order Form: means any order on Sauce Labs’ standard order form which is executed by Sauce Labs and you and which references this Agreement. Each Order Form which references this Agreement shall be deemed a part of this Agreement. This Agreement is binding on you whether or not you execute an Order Form with Sauce Labs.
37
+ </p><p>
38
+ <u>Software:</u> means the Sauce Labs software product(s) provided in connection with this Agreement in object code form. “Software” shall also include any releases provided to or purchased by you under any separate support and maintenance agreement you may enter into with Sauce Labs. Unless otherwise noted, the Software and Documentation are referred to collectively herein as “Software”.
39
+ </p>
40
+ <h4>2. License.</h4>
41
+ <p>
42
+ 2.1 <u>Grant of License</u>. Subject to all of the terms and conditions of this Agreement, Sauce Labs grants you a non-transferable, non-sublicensable, non-exclusive license to use the Software, but only in accordance with (i) the Documentation, (ii) this Agreement and (iii) any license term, subscription term or other user, computer, field of use or other restrictions set forth in the applicable Order Form or otherwise specified upon download of the Software.
43
+ </p><p>
44
+ 2.2 <u>Installation and Copies</u>. Sauce Labs shall deliver the Software and Documentation by disk or other media or make it available for download in electronic form. Sauce Labs shall also provide you with electronic passwords or other enabling mechanisms if necessary to permit the licensed usage of the Software. Delivery shall be deemed to occur as of the Effective Date (or, if later, such date on which the Software and license keys are first made available to you). You may copy and install the number of copies of Software you indicated to Sauce Labs at the time of download. You may also make one copy of the Software for back-up and archival purposes.
45
+ </p><p>
46
+ 2.3 <u>License Restrictions</u>. You shall not (and shall not allow any third party to): (a) work around any technical limitations in the Software; (b) decompile, disassemble, or otherwise reverse engineer the Software or attempt to reconstruct or discover any source code, underlying ideas, algorithms, file formats or programming interfaces of the Software by any means whatsoever (except and only to the extent that applicable law prohibits or restricts reverse engineering restrictions);(c) distribute, sell, sublicense, rent, lease or use the Software (or any portion thereof) for time sharing, commercial hosting, service provider or like purposes; (d) remove any product identification, proprietary, copyright or other notices contained in the Software; (e) modify any part of the Software, create a derivative work of any part of the Software, or incorporate the Software into or with other software, except to the extent expressly authorized in writing by Sauce Labs; or (f) publicly disseminate performance information or analysis (including, without limitation, benchmarks) from any source relating to the Software.
47
+ </p><p>
48
+ 2.4 <u>Special Provision regarding Beta or Evaluation Code</u>. If the Software was provided to you free of charge or is otherwise designated as a “beta” or “evaluation” release, you acknowledge that the Software may not be complete or fully functional and furthermore that Sauce Labs provides the Software to you without any support, maintenance or other obligation of any kind. Sauce Labs does not guarantee that the Software will continue to be made available for any period of time or that any future release of the Software will be made available under the same terms.
49
+ </p><p>
50
+ 2.5 <u>Third-Party Open Source Code</u>. The Software may contain or be provided with components subject to the terms and conditions of “open source” software licenses (“Open Source Software”). Open Source Software may be identified in the Documentation, legal notices or as otherwise designated by Sauce Labs or provided to Customer upon Customer’s written request. To the extent required by the license that accompanies the Open Source Software, the terms of such license will apply in lieu of the terms of this Agreement with respect to such Open Source Software, including, without limitation, any provisions governing access to source code, modification or reverse engineering.
51
+ </p><p>
52
+ <h4>3. Ownership.</h4>
53
+ <p>
54
+ Notwithstanding anything to the contrary contained herein, except for the limited license rights expressly provided herein, Sauce Labs and its suppliers have and will retain all rights, title and interest (including, without limitation, all patent, copyright, trademark, trade secret and other intellectual property rights) in and to the Software and all copies, modifications and derivative works thereof (including any changes which incorporate any of your ideas, feedback or suggestions). You acknowledge that you are obtaining only a limited license right to the Software and that irrespective of any use of the words “purchase”, “sale” or like terms hereunder no ownership rights are being conveyed to you in the Software or any copy of the Software under this Agreement or otherwise.
55
+ </p>
56
+ <h4>4. Term of Agreement.</h4>
57
+ <p>
58
+ 4.1 <u>Term</u>. This Agreement is effective as of the Effective Date and expires at such time as all licenses hereunder have expired in accordance with their own terms (the “Term”). Either party may terminate this Agreement (including all related Order Forms) if the other party: (a) fails to cure any material breach of this Agreement within thirty (30) days after written notice of such breach; (b) ceases operation without a successor; or (c) seeks protection under any bankruptcy, receivership, trust deed, creditors arrangement, composition or comparable proceeding, or if any such proceeding is instituted against such party (and not dismissed within sixty (60) days)). Termination is not an exclusive remedy and the exercise by either party of any remedy under this Agreement will be without prejudice to any other remedies it may have under this Agreement, by law, or otherwise.
59
+ </p><p>
60
+ 4.2 <u>Termination</u>. Upon any expiration or termination of this Agreement, you shall cease any and all use of any Software and destroy all copies thereof and so certify to Sauce Labs in writing.
61
+ </p><p>
62
+ 4.3 <u>Survival</u>. Sections 2.3 (License Restrictions), 3 (Ownership), 4 (Term of Agreement), 5 (Warranty Disclaimer), 7 (Limitation of Remedies and Damages), 8 (Confidential Information), 10 (Export Compliance) and 11 (General) shall survive any termination or expiration of this Agreement.
63
+
64
+ <h4>5. Warranty Disclaimer. </h4>
65
+ <p>
66
+ THE SOFTWARE AND ALL SERVICES ARE PROVIDED “AS IS”. NEITHER SAUCE LABS NOR ITS SUPPLIERS MAKES ANY OTHER WARRANTIES, CONDITIONS OR UNDERTAKINGS, EXPRESS OR IMPLIED, STATUTORY OR OTHERWISE, INCLUDING BUT NOT LIMITED TO WARRANTIES OF title, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
67
+ </p><p>
68
+ YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS UNDER YOUR LOCAL LAWS, WHICH THIS AGREEMENT CANNOT CHANGE.
69
+ </p>
70
+ <h4>6. Support &amp; Maintenance.</h4>
71
+ <p>Sauce Labs may provide the support and maintenance services, if any, as
72
+ separately purchased by you and specified in the applicable Order Form. All
73
+ support &amp; maintenance shall be provided pursuant to Sauce Labs’ standard service terms which are available upon request from Sauce Labs.
74
+ </p>
75
+ <h4>7. Limitation of Remedies and Damages.</h4>
76
+ <p>
77
+ 7.1 NEITHER YOU NOR Sauce Labs (Including Sauce Labs’ suppliers) SHALL BE LIABLE FOR ANY LOSS OF USE, LOST DATA, FAILURE OF SECURITY MECHANISMS, INTERRUPTION OF BUSINESS, OR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY KIND (INCLUDING LOST PROFITS), REGARDLESS OF THE FORM OF ACTION, WHETHER IN CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF INFORMED OF THE POSSIBILITY OF SUCH DAMAGES IN ADVANCE.
78
+ </p><p>
79
+ 7.2 NOTWITHSTANDING ANY OTHER PROVISION OF THIS AGREEMENT, SAUCE LABS AND ITS SUPPLIERS’ ENTIRE LIABILITY TO YOU UNDER THIS AGREEMENT SHALL NOT EXCEED THE AMOUNT ACTUALLY PAID BY YOU TO SAUCE LABS UNDER THIS AGREEMENT.
80
+ </p><p>
81
+ 7.3 The parties agree that the limitations specified in this Section 7 will survive and apply even if any limited remedy specified in this Agreement is found to have failed of its essential purpose.
82
+ </p>
83
+ <h4>8. Confidential Information.</h4>
84
+ <p>Any software, documentation or technical information provided by Sauce Labs (or its agents) shall be deemed “Sauce Labs Confidential Information” without any marking or further designation. Except as expressly authorized herein, you will hold in confidence and not use or disclose any Sauce Labs Confidential Information. You acknowledge that disclosure of Sauce Labs Confidential Information would cause substantial harm to Sauce Labs that could not be remedied by the payment of damages alone and therefore that upon any such disclosure by you, Sauce Labs shall be entitled to appropriate equitable relief in addition to whatever remedies it might have at law.
85
+ </p>
86
+ <h4>9. Customer Acknowledgement.</h4>
87
+ <p>
88
+ You agree that Sauce Labs may disclose you as a customer of Sauce Labs.
89
+ </p>
90
+ <h4>10. Export Compliance.</h4>
91
+ <p>You acknowledge that the Software is subject to export restrictions by the United States government and import restrictions by certain foreign governments. You shall not, and shall not allow any third-party to, remove or export from the United States or allow the export or re-export of any part of the Software or any direct product thereof: (i) into (or to a national or resident of) any embargoed or terrorist-supporting country; (ii) to anyone on the U.S. Commerce Department’s Table of Denial Orders or U.S. Treasury Department’s list of Specially Designated Nationals; (iii) to any country to which such export or re-export is restricted or prohibited, or as to which the United States government or any agency thereof requires an export license or other governmental approval at the time of export or re-export without first obtaining such license or approval; or (iv) otherwise in violation of any export or import restrictions, laws or regulations of any United States or foreign agency or authority. You agree to the foregoing and warrant that you are not located in, under the control of, or a national or resident of any such prohibited country or on any such prohibited party list. The Software is further restricted from being used for the design or development of nuclear, chemical, or biological weapons or missile technology, or for terrorist activity, without the prior permission of the United States government.
92
+ </p>
93
+ <h4>11. General.</h4>
94
+ <p>
95
+ 11.1 <u>Assignment</u>. This Agreement will bind and inure to the benefit of each party’s permitted successors and assigns. Sauce Labs may assign this Agreement to any affiliate or in connection with a merger, reorganization, acquisition or other transfer of all or substantially all of Sauce Labs’ assets or voting securities. You may not assign or transfer this Agreement, in whole or in part, without Sauce Labs’ written consent. Any attempt to transfer or assign this Agreement without such written consent will be null and void.
96
+ </p><p>
97
+ 11.2 <u>Severability</u>. If any provision of this Agreement shall be adjudged by any court of competent jurisdiction to be unenforceable or invalid, that provision shall be limited to the minimum extent necessary so that this Agreement shall otherwise remain in effect.
98
+ </p><p>
99
+ 11.3 <u>Governing Law; Jurisdiction and Venue</u>. This Agreement shall be governed by the laws of The State of California and the United States without regard to conflicts of laws provisions thereof, and without regard to the United Nations Convention on the International Sale of Goods. The jurisdiction and venue for actions related to the subject matter hereof shall be the California state and United States federal courts located in San Francisco, California, and both parties hereby submit to the personal jurisdiction of such courts.
100
+ </p><p>
101
+ 11.4 <u>Attorneys’ Fees and Costs</u>. The prevailing party in any action to enforce this Agreement will be entitled to recover its attorneys’ fees and costs in connection with such action.
102
+ </p><p>
103
+ 11.5 <u>Notices and Reports</u>. Any notice or report hereunder shall be in writing. If to Sauce Labs, such notice or report shall be sent to Sauce Labs at the address above to the attention of “Legal Department”. If to you, such notice or report shall be sent to the address you provided upon placing your order. Notices and reports shall be deemed given: (i) upon receipt if by personal delivery; (ii) upon receipt if sent by certified or registered U.S. mail (return receipt requested); or (iii) one day after it is sent if by next day delivery by a major commercial delivery service.
104
+ </p><p>
105
+ 11.6 <u>Amendments; Waivers</u>. No supplement, modification, or amendment of this Agreement shall be binding, unless executed in writing by a duly authorized representative of each party to this Agreement. No waiver will be implied from conduct or failure to enforce or exercise rights under this Agreement, nor will any waiver be effective unless in a writing signed by a duly authorized representative on behalf of the party claimed to have waived.
106
+ </p><p>
107
+ 11.7 <u>Entire Agreement</u>. This Agreement is the complete and exclusive statement of the mutual understanding of the parties and supersedes and cancels all previous written and oral agreements and communications relating to the subject matter of this Agreement. No provision of any purchase order or in any other business form employed by you will supersede the terms and conditions of this Agreement, and any such document issued by a party hereto relating to this Agreement shall be for administrative purposes only and shall have no legal effect. Notwithstanding the foregoing, if you have entered into a separate written license agreement signed by Sauce Labs for use of the Software, the terms and conditions of such other agreement shall prevail over any conflicting terms or conditions in this Agreement.
108
+ </p><p>
109
+ 11.8 <u>Independent Contractors</u>. The parties to this Agreement are independent contractors. There is no relationship of partnership, joint venture, employment, franchise or agency created hereby between the parties. Neither party will have the power to bind the other or incur obligations on the other party’s behalf without the other party’s prior written consent.
110
+ </p><p>
111
+ 11.9 <u>Force Majeure</u>. Neither party shall be liable to the other for any delay or failure to perform any obligation under this Agreement (except for a failure to pay fees) if the delay or failure is due to unforeseen events, which occur after the signing of this Agreement and which are beyond the reasonable control of the parties, such as strikes, blockade, war, terrorism, riots, natural disasters, refusal of license by the government or other governmental agencies, in so far as such an event prevents or delays the affected party from fulfilling its obligations and such party is not able to prevent or remove the force majeure at reasonable cost.
112
+ </p><p>
113
+ 11.10 <u>Government End-Users</u>. The Software is commercial computer software. If the user or licensee of the Software is an agency, department, or other entity of the United States Government, the use, duplication, reproduction, release, modification, disclosure, or transfer of the Software, or any related documentation of any kind, including technical data and manuals, is restricted by a license agreement or by the terms of this Agreement in accordance with Federal Acquisition Regulation 12.212 for civilian purposes and Defense Federal Acquisition Regulation Supplement 227.7202 for military purposes. The Software was developed fully at private expense. All other use is prohibited.
114
+ </p>
115
+ </body>
116
+ </html>
Binary file
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>CFBundleDevelopmentRegion</key>
6
+ <string>English</string>
7
+ <key>CFBundleIdentifier</key>
8
+ <string>com.apple.xcode.dsym.sc</string>
9
+ <key>CFBundleInfoDictionaryVersion</key>
10
+ <string>6.0</string>
11
+ <key>CFBundlePackageType</key>
12
+ <string>dSYM</string>
13
+ <key>CFBundleSignature</key>
14
+ <string>????</string>
15
+ <key>CFBundleShortVersionString</key>
16
+ <string>1.0</string>
17
+ <key>CFBundleVersion</key>
18
+ <string>1</string>
19
+ </dict>
20
+ </plist>
@@ -0,0 +1,154 @@
1
+ #ifndef _SAUCECONNECT_H
2
+ #define _SAUCECONNECT_H
3
+
4
+ #include <stddef.h>
5
+
6
+ /*
7
+ * The definition of this structure is hidden from the API to be able to
8
+ * provide ABI compatibility if our Sauce Connect implementation changes. Use
9
+ * sc_new() and sc_free() to create/free it.
10
+ */
11
+ struct sc_ctx;
12
+
13
+ /*
14
+ * Create/free a new Sauce Connect context. This can be called multiple times
15
+ * to create independent instances, to e.g. use multiple accounts.
16
+ */
17
+ struct sc_ctx *sc_new(void);
18
+ void sc_free(struct sc_ctx *ctx);
19
+
20
+ /*
21
+ * Setter/getter for configuration parameters. vlen is the size of value. Do
22
+ * this before calling sc_init().
23
+ */
24
+ #define SC_PARAM_IS_SERVER 0x01 /* int */
25
+ #define SC_PARAM_KGP_HOST 0x02 /* char * */
26
+ #define SC_PARAM_KGP_PORT 0x03 /* int */
27
+ #define SC_PARAM_EXT_HOST 0x04 /* char * */
28
+ #define SC_PARAM_EXT_PORT 0x05 /* int */
29
+ #define SC_PARAM_CERTFILE 0x06 /* char * */
30
+ #define SC_PARAM_KEYFILE 0x07 /* char * */
31
+ #define SC_PARAM_LOCAL_PORT 0x08 /* int */
32
+ #define SC_PARAM_USER 0x09 /* char * */
33
+ #define SC_PARAM_API_KEY 0x0a /* char * */
34
+ #define SC_PARAM_PROXY 0x0b /* char * */
35
+ #define SC_PARAM_PROXY_USERPWD 0x0c /* char * */
36
+ #define SC_PARAM_RECONNECT 0x0d /* int */
37
+ #define SC_PARAM_DNS_SERVERS 0x0e /* char * */
38
+ int sc_get(struct sc_ctx *ctx, int param, void *value, size_t vlen);
39
+ int sc_set(struct sc_ctx *ctx, int param, void *value);
40
+
41
+ /*
42
+ * Once we have set up our ctx, do some initialization. This makes sure
43
+ * everything is ready to start a new connection. Do this only after
44
+ * parameters are set via sc_set().
45
+ */
46
+ int sc_init(struct sc_ctx *ctx);
47
+
48
+ /*
49
+ * Run the main event loop: connect to the peer, and start forwarding. Only
50
+ * returns if sc_stop() is called from another thread, or a fatal error
51
+ * happens Sauce Connect can't recover from.
52
+ */
53
+ int sc_run(struct sc_ctx *ctx);
54
+
55
+ /*
56
+ * Stop the Sauce Connect main event loop. This can be used from e.g. another
57
+ * thread to stop SC in a clean way.
58
+ */
59
+ int sc_stop(struct sc_ctx *ctx);
60
+
61
+ /*
62
+ * Get the current status of Sauce Connect.
63
+ */
64
+ #define SC_STATUS_RUNNING 0x01
65
+ #define SC_STATUS_EXITING 0x02
66
+ int sc_status(struct sc_ctx *ctx);
67
+
68
+ /*
69
+ * Get information on Sauce Connect internals.
70
+ */
71
+ #define SC_INFO_KGP_IS_CONNECTED 0x01
72
+ #define SC_INFO_KGP_LAST_STATUS_CHANGE 0x02
73
+ int sc_get_info(struct sc_ctx *ctx, int what, int *info);
74
+
75
+ /*
76
+ * Set a log callback the library will call when logging messages.
77
+ */
78
+ typedef void (*sc_log_cb)(int severity, const char *msg);
79
+
80
+ void sc_set_log_fn(sc_log_cb cb);
81
+
82
+ #define SC_EXITCODE_UNKNOWN 0
83
+ #define SC_EXITCODE_ALLOC_ERROR 1
84
+ #define SC_EXITCODE_LOCAL_LISTEN_ERROR 2
85
+ #define SC_EXITCODE_LOCAL_ACCEPT_ERROR 3
86
+ #define SC_EXITCODE_KGP_INVALID_PACKET 4
87
+ #define SC_EXITCODE_KGP_CONNECT_ERROR 5
88
+ #define SC_EXITCODE_KGP_CONNECTION_CLOSED 6
89
+ #define SC_EXITCODE_KGP_LISTEN_ERROR 7
90
+ #define SC_EXITCODE_CMD_STOP 8
91
+ #define SC_EXITCODE_CMD_SOCKET_ERROR 9
92
+ #define SC_EXITCODE_CMD_CONNECTION_CLOSED 10
93
+ #define SC_EXITCODE_DNS_RESET_ERROR 11
94
+ int sc_error(struct sc_ctx *ctx);
95
+
96
+ static inline char *sc_err2str(int exitcode)
97
+ {
98
+ switch (exitcode) {
99
+ case SC_EXITCODE_UNKNOWN:
100
+ return "Unknown error or no error occured";
101
+ break;
102
+ case SC_EXITCODE_ALLOC_ERROR:
103
+ return "Allocation failed - out of memory?";
104
+ break;
105
+ case SC_EXITCODE_LOCAL_LISTEN_ERROR:
106
+ return "Failed to start Selenium listener. "
107
+ "Please make sure there are no other applications using "
108
+ "the Selenium port, or specify an alternative port for "
109
+ "Sauce Connect via the --se-port option";
110
+ break;
111
+ case SC_EXITCODE_LOCAL_ACCEPT_ERROR:
112
+ return "Failed to accept Selenium connection";
113
+ break;
114
+ case SC_EXITCODE_KGP_INVALID_PACKET:
115
+ return "Invalid KGP packet received";
116
+ break;
117
+ case SC_EXITCODE_KGP_CONNECT_ERROR:
118
+ return "KGP connection error";
119
+ break;
120
+ case SC_EXITCODE_KGP_CONNECTION_CLOSED:
121
+ return "KGP connection closed from the other side";
122
+ break;
123
+ case SC_EXITCODE_KGP_LISTEN_ERROR:
124
+ return "Failed to start KGP listener";
125
+ break;
126
+ case SC_EXITCODE_CMD_STOP:
127
+ return "Terminated";
128
+ break;
129
+ case SC_EXITCODE_CMD_SOCKET_ERROR:
130
+ return "Internal error: command socket failure";
131
+ break;
132
+ case SC_EXITCODE_CMD_CONNECTION_CLOSED:
133
+ return "Internal error: command socket closed";
134
+ break;
135
+ case SC_EXITCODE_DNS_RESET_ERROR:
136
+ return "DNS reset failed";
137
+ break;
138
+ default:
139
+ return "Invalid exit code";
140
+ break;
141
+ }
142
+ }
143
+
144
+ /*
145
+ * Enable SSL verification for KGP. This is the default.
146
+ */
147
+ void sc_ssl_enable_verification(void);
148
+
149
+ /*
150
+ * Disable SSL verification for KGP. This is the default.
151
+ */
152
+ void sc_ssl_disable_verification(void);
153
+
154
+ #endif
@@ -0,0 +1,41 @@
1
+ # libsauceconnect.la - a libtool library file
2
+ # Generated by libtool (GNU libtool) 2.4.2
3
+ #
4
+ # Please DO NOT delete this file!
5
+ # It is necessary for linking the library.
6
+
7
+ # The name that we can dlopen(3).
8
+ dlname=''
9
+
10
+ # Names of this library.
11
+ library_names=''
12
+
13
+ # The name of the static archive.
14
+ old_library='libsauceconnect.a'
15
+
16
+ # Linker flags that can not go in dependency_libs.
17
+ inherited_linker_flags=' -framework CoreFoundation -framework Security'
18
+
19
+ # Libraries that this one depends upon.
20
+ dependency_libs=' -L/Users/travis/build/saucelabs/libsauceconnect/build/Darwin/openssl/lib -L/Users/travis/build/saucelabs/libsauceconnect/curl/ares /Users/travis/build/saucelabs/libsauceconnect/build/sc-build-1760/lib/libevent.la /Users/travis/build/saucelabs/libsauceconnect/build/sc-build-1760/lib/libevent_openssl.la /Users/travis/build/saucelabs/libsauceconnect/build/sc-build-1760/lib/libcares.la /Users/travis/build/saucelabs/libsauceconnect/build/sc-build-1760/lib/libcurl.la /Users/travis/build/saucelabs/libsauceconnect/build/sc-build-1760/lib/libcares.la -lz -lssl -lcrypto -ldl'
21
+
22
+ # Names of additional weak libraries provided by this library
23
+ weak_library_names=''
24
+
25
+ # Version information for libsauceconnect.
26
+ current=0
27
+ age=0
28
+ revision=0
29
+
30
+ # Is this an already installed library?
31
+ installed=yes
32
+
33
+ # Should we warn about portability when linking against -modules?
34
+ shouldnotlink=no
35
+
36
+ # Files to dlopen/dlpreopen
37
+ dlopen=''
38
+ dlpreopen=''
39
+
40
+ # Directory that this library needs to be installed in:
41
+ libdir='/Users/travis/build/saucelabs/libsauceconnect/build/sc-build-1760/lib'
@@ -0,0 +1,116 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2
+ "http://www.w3.org/TR/html4/loose.dtd">
3
+ <html>
4
+ <head>
5
+ <title>Sauce Connect License</title>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
7
+ </head>
8
+ <body>
9
+ <div style="margin-bottom: 40px">
10
+ <center><h3>
11
+ SAUCE LABS INC <br />
12
+ END USER LICENSE AGREEMENT (“EULA”) <br />
13
+ for: <br />
14
+ Public Release of Sauce Connect <br />
15
+ </h3></center>
16
+ </div>
17
+
18
+ <p><b>
19
+ READ THIS AGREEMENT CAREFULLY.
20
+ </b></p>
21
+ <p>
22
+ BY CLICKING ON THE “I AGREE” BUTTON OR INSTALLING OR USING ALL OR ANY PORTION OF THE SOFTWARE, YOU ARE ACCEPTING ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. YOU AGREE THAT THIS AGREEMENT IS ENFORCEABLE LIKE ANY WRITTEN AGREEMENT SIGNED BY YOU.
23
+ </p><p>
24
+ IF YOU DO NOT AGREE TO ALL OF THESE TERMS AND CONDITIONS, CLICK “I DON’T AGREE”. YOU WILL NOT BE GIVEN ACCESS TO THE SOFTWARE UNLESS YOU ACCEPT THE TERMS OF THIS AGREEMENT. IF YOU HAVE PAID A LICENSE FEE FOR USE OF THE SOFTWARE AND DO NOT AGREE TO THESE TERMS, YOU MAY RETURN OR CONFIRM DELETION OF ALL COPIES OF THE SOFTWARE FOR A FULL REFUND PROVIDED YOU (A) DO NOT USE THE SOFTWARE AND (B) RETURN THE SOFTWARE WITHIN THIRTY (30) DAYS OF YOUR INITIAL PURCHASE.
25
+ </p><p>
26
+ IF YOU WISH TO USE the Software AS AN EMPLOYEE, CONTRACTOR, OR AGENT OF A CORPORATION, PARTNERSHIP OR SIMILAR ENTITY, THEN YOU MUST BE AUTHORIZED TO SIGN FOR AND BIND THE ENTITY IN ORDER TO ACCEPT THE TERMS OF THIS AGREEMENT. THE LICENSES GRANTED UNDER THIS AGREEMENT ARE EXPRESSLY CONDITIONED UPON ACCEPTANCE BY SUCH AUTHORIZED PERSONNEL.
27
+ </p><p>
28
+ IF YOU HAVE ENTERED INTO A SEPARATE WRITTEN LICENSE AGREEMENT WITH SAUCE LABS FOR USE OF THE SOFTWARE, THE TERMS AND CONDITIONS OF SUCH OTHER AGREEMENT SHALL PREVAIL OVER ANY CONFLICTING TERMS OR CONDITIONS IN THIS AGREEMENT.
29
+ </p><p>
30
+ This End User License Agreement (“Agreement”) is between Sauce Labs Inc, located at 55 Sheridan St., San Francisco, CA 94103 (“Sauce Labs”) and the customer (individual or entity) that has downloaded or otherwise procured the licensed Software (as defined below) for use as an end user (“you”). This Agreement covers any Software and supporting technical documentation provided with the Software (“Documentation”).
31
+ </p>
32
+ <div>
33
+ <h4>1. Definitions. </h4>
34
+ <p>
35
+ <u>Effective Date:</u> means the earlier of the date you sign an Order Form or the date on which the Software is first made available to you.
36
+ Order Form: means any order on Sauce Labs’ standard order form which is executed by Sauce Labs and you and which references this Agreement. Each Order Form which references this Agreement shall be deemed a part of this Agreement. This Agreement is binding on you whether or not you execute an Order Form with Sauce Labs.
37
+ </p><p>
38
+ <u>Software:</u> means the Sauce Labs software product(s) provided in connection with this Agreement in object code form. “Software” shall also include any releases provided to or purchased by you under any separate support and maintenance agreement you may enter into with Sauce Labs. Unless otherwise noted, the Software and Documentation are referred to collectively herein as “Software”.
39
+ </p>
40
+ <h4>2. License.</h4>
41
+ <p>
42
+ 2.1 <u>Grant of License</u>. Subject to all of the terms and conditions of this Agreement, Sauce Labs grants you a non-transferable, non-sublicensable, non-exclusive license to use the Software, but only in accordance with (i) the Documentation, (ii) this Agreement and (iii) any license term, subscription term or other user, computer, field of use or other restrictions set forth in the applicable Order Form or otherwise specified upon download of the Software.
43
+ </p><p>
44
+ 2.2 <u>Installation and Copies</u>. Sauce Labs shall deliver the Software and Documentation by disk or other media or make it available for download in electronic form. Sauce Labs shall also provide you with electronic passwords or other enabling mechanisms if necessary to permit the licensed usage of the Software. Delivery shall be deemed to occur as of the Effective Date (or, if later, such date on which the Software and license keys are first made available to you). You may copy and install the number of copies of Software you indicated to Sauce Labs at the time of download. You may also make one copy of the Software for back-up and archival purposes.
45
+ </p><p>
46
+ 2.3 <u>License Restrictions</u>. You shall not (and shall not allow any third party to): (a) work around any technical limitations in the Software; (b) decompile, disassemble, or otherwise reverse engineer the Software or attempt to reconstruct or discover any source code, underlying ideas, algorithms, file formats or programming interfaces of the Software by any means whatsoever (except and only to the extent that applicable law prohibits or restricts reverse engineering restrictions);(c) distribute, sell, sublicense, rent, lease or use the Software (or any portion thereof) for time sharing, commercial hosting, service provider or like purposes; (d) remove any product identification, proprietary, copyright or other notices contained in the Software; (e) modify any part of the Software, create a derivative work of any part of the Software, or incorporate the Software into or with other software, except to the extent expressly authorized in writing by Sauce Labs; or (f) publicly disseminate performance information or analysis (including, without limitation, benchmarks) from any source relating to the Software.
47
+ </p><p>
48
+ 2.4 <u>Special Provision regarding Beta or Evaluation Code</u>. If the Software was provided to you free of charge or is otherwise designated as a “beta” or “evaluation” release, you acknowledge that the Software may not be complete or fully functional and furthermore that Sauce Labs provides the Software to you without any support, maintenance or other obligation of any kind. Sauce Labs does not guarantee that the Software will continue to be made available for any period of time or that any future release of the Software will be made available under the same terms.
49
+ </p><p>
50
+ 2.5 <u>Third-Party Open Source Code</u>. The Software may contain or be provided with components subject to the terms and conditions of “open source” software licenses (“Open Source Software”). Open Source Software may be identified in the Documentation, legal notices or as otherwise designated by Sauce Labs or provided to Customer upon Customer’s written request. To the extent required by the license that accompanies the Open Source Software, the terms of such license will apply in lieu of the terms of this Agreement with respect to such Open Source Software, including, without limitation, any provisions governing access to source code, modification or reverse engineering.
51
+ </p><p>
52
+ <h4>3. Ownership.</h4>
53
+ <p>
54
+ Notwithstanding anything to the contrary contained herein, except for the limited license rights expressly provided herein, Sauce Labs and its suppliers have and will retain all rights, title and interest (including, without limitation, all patent, copyright, trademark, trade secret and other intellectual property rights) in and to the Software and all copies, modifications and derivative works thereof (including any changes which incorporate any of your ideas, feedback or suggestions). You acknowledge that you are obtaining only a limited license right to the Software and that irrespective of any use of the words “purchase”, “sale” or like terms hereunder no ownership rights are being conveyed to you in the Software or any copy of the Software under this Agreement or otherwise.
55
+ </p>
56
+ <h4>4. Term of Agreement.</h4>
57
+ <p>
58
+ 4.1 <u>Term</u>. This Agreement is effective as of the Effective Date and expires at such time as all licenses hereunder have expired in accordance with their own terms (the “Term”). Either party may terminate this Agreement (including all related Order Forms) if the other party: (a) fails to cure any material breach of this Agreement within thirty (30) days after written notice of such breach; (b) ceases operation without a successor; or (c) seeks protection under any bankruptcy, receivership, trust deed, creditors arrangement, composition or comparable proceeding, or if any such proceeding is instituted against such party (and not dismissed within sixty (60) days)). Termination is not an exclusive remedy and the exercise by either party of any remedy under this Agreement will be without prejudice to any other remedies it may have under this Agreement, by law, or otherwise.
59
+ </p><p>
60
+ 4.2 <u>Termination</u>. Upon any expiration or termination of this Agreement, you shall cease any and all use of any Software and destroy all copies thereof and so certify to Sauce Labs in writing.
61
+ </p><p>
62
+ 4.3 <u>Survival</u>. Sections 2.3 (License Restrictions), 3 (Ownership), 4 (Term of Agreement), 5 (Warranty Disclaimer), 7 (Limitation of Remedies and Damages), 8 (Confidential Information), 10 (Export Compliance) and 11 (General) shall survive any termination or expiration of this Agreement.
63
+
64
+ <h4>5. Warranty Disclaimer. </h4>
65
+ <p>
66
+ THE SOFTWARE AND ALL SERVICES ARE PROVIDED “AS IS”. NEITHER SAUCE LABS NOR ITS SUPPLIERS MAKES ANY OTHER WARRANTIES, CONDITIONS OR UNDERTAKINGS, EXPRESS OR IMPLIED, STATUTORY OR OTHERWISE, INCLUDING BUT NOT LIMITED TO WARRANTIES OF title, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
67
+ </p><p>
68
+ YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS UNDER YOUR LOCAL LAWS, WHICH THIS AGREEMENT CANNOT CHANGE.
69
+ </p>
70
+ <h4>6. Support &amp; Maintenance.</h4>
71
+ <p>Sauce Labs may provide the support and maintenance services, if any, as
72
+ separately purchased by you and specified in the applicable Order Form. All
73
+ support &amp; maintenance shall be provided pursuant to Sauce Labs’ standard service terms which are available upon request from Sauce Labs.
74
+ </p>
75
+ <h4>7. Limitation of Remedies and Damages.</h4>
76
+ <p>
77
+ 7.1 NEITHER YOU NOR Sauce Labs (Including Sauce Labs’ suppliers) SHALL BE LIABLE FOR ANY LOSS OF USE, LOST DATA, FAILURE OF SECURITY MECHANISMS, INTERRUPTION OF BUSINESS, OR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY KIND (INCLUDING LOST PROFITS), REGARDLESS OF THE FORM OF ACTION, WHETHER IN CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF INFORMED OF THE POSSIBILITY OF SUCH DAMAGES IN ADVANCE.
78
+ </p><p>
79
+ 7.2 NOTWITHSTANDING ANY OTHER PROVISION OF THIS AGREEMENT, SAUCE LABS AND ITS SUPPLIERS’ ENTIRE LIABILITY TO YOU UNDER THIS AGREEMENT SHALL NOT EXCEED THE AMOUNT ACTUALLY PAID BY YOU TO SAUCE LABS UNDER THIS AGREEMENT.
80
+ </p><p>
81
+ 7.3 The parties agree that the limitations specified in this Section 7 will survive and apply even if any limited remedy specified in this Agreement is found to have failed of its essential purpose.
82
+ </p>
83
+ <h4>8. Confidential Information.</h4>
84
+ <p>Any software, documentation or technical information provided by Sauce Labs (or its agents) shall be deemed “Sauce Labs Confidential Information” without any marking or further designation. Except as expressly authorized herein, you will hold in confidence and not use or disclose any Sauce Labs Confidential Information. You acknowledge that disclosure of Sauce Labs Confidential Information would cause substantial harm to Sauce Labs that could not be remedied by the payment of damages alone and therefore that upon any such disclosure by you, Sauce Labs shall be entitled to appropriate equitable relief in addition to whatever remedies it might have at law.
85
+ </p>
86
+ <h4>9. Customer Acknowledgement.</h4>
87
+ <p>
88
+ You agree that Sauce Labs may disclose you as a customer of Sauce Labs.
89
+ </p>
90
+ <h4>10. Export Compliance.</h4>
91
+ <p>You acknowledge that the Software is subject to export restrictions by the United States government and import restrictions by certain foreign governments. You shall not, and shall not allow any third-party to, remove or export from the United States or allow the export or re-export of any part of the Software or any direct product thereof: (i) into (or to a national or resident of) any embargoed or terrorist-supporting country; (ii) to anyone on the U.S. Commerce Department’s Table of Denial Orders or U.S. Treasury Department’s list of Specially Designated Nationals; (iii) to any country to which such export or re-export is restricted or prohibited, or as to which the United States government or any agency thereof requires an export license or other governmental approval at the time of export or re-export without first obtaining such license or approval; or (iv) otherwise in violation of any export or import restrictions, laws or regulations of any United States or foreign agency or authority. You agree to the foregoing and warrant that you are not located in, under the control of, or a national or resident of any such prohibited country or on any such prohibited party list. The Software is further restricted from being used for the design or development of nuclear, chemical, or biological weapons or missile technology, or for terrorist activity, without the prior permission of the United States government.
92
+ </p>
93
+ <h4>11. General.</h4>
94
+ <p>
95
+ 11.1 <u>Assignment</u>. This Agreement will bind and inure to the benefit of each party’s permitted successors and assigns. Sauce Labs may assign this Agreement to any affiliate or in connection with a merger, reorganization, acquisition or other transfer of all or substantially all of Sauce Labs’ assets or voting securities. You may not assign or transfer this Agreement, in whole or in part, without Sauce Labs’ written consent. Any attempt to transfer or assign this Agreement without such written consent will be null and void.
96
+ </p><p>
97
+ 11.2 <u>Severability</u>. If any provision of this Agreement shall be adjudged by any court of competent jurisdiction to be unenforceable or invalid, that provision shall be limited to the minimum extent necessary so that this Agreement shall otherwise remain in effect.
98
+ </p><p>
99
+ 11.3 <u>Governing Law; Jurisdiction and Venue</u>. This Agreement shall be governed by the laws of The State of California and the United States without regard to conflicts of laws provisions thereof, and without regard to the United Nations Convention on the International Sale of Goods. The jurisdiction and venue for actions related to the subject matter hereof shall be the California state and United States federal courts located in San Francisco, California, and both parties hereby submit to the personal jurisdiction of such courts.
100
+ </p><p>
101
+ 11.4 <u>Attorneys’ Fees and Costs</u>. The prevailing party in any action to enforce this Agreement will be entitled to recover its attorneys’ fees and costs in connection with such action.
102
+ </p><p>
103
+ 11.5 <u>Notices and Reports</u>. Any notice or report hereunder shall be in writing. If to Sauce Labs, such notice or report shall be sent to Sauce Labs at the address above to the attention of “Legal Department”. If to you, such notice or report shall be sent to the address you provided upon placing your order. Notices and reports shall be deemed given: (i) upon receipt if by personal delivery; (ii) upon receipt if sent by certified or registered U.S. mail (return receipt requested); or (iii) one day after it is sent if by next day delivery by a major commercial delivery service.
104
+ </p><p>
105
+ 11.6 <u>Amendments; Waivers</u>. No supplement, modification, or amendment of this Agreement shall be binding, unless executed in writing by a duly authorized representative of each party to this Agreement. No waiver will be implied from conduct or failure to enforce or exercise rights under this Agreement, nor will any waiver be effective unless in a writing signed by a duly authorized representative on behalf of the party claimed to have waived.
106
+ </p><p>
107
+ 11.7 <u>Entire Agreement</u>. This Agreement is the complete and exclusive statement of the mutual understanding of the parties and supersedes and cancels all previous written and oral agreements and communications relating to the subject matter of this Agreement. No provision of any purchase order or in any other business form employed by you will supersede the terms and conditions of this Agreement, and any such document issued by a party hereto relating to this Agreement shall be for administrative purposes only and shall have no legal effect. Notwithstanding the foregoing, if you have entered into a separate written license agreement signed by Sauce Labs for use of the Software, the terms and conditions of such other agreement shall prevail over any conflicting terms or conditions in this Agreement.
108
+ </p><p>
109
+ 11.8 <u>Independent Contractors</u>. The parties to this Agreement are independent contractors. There is no relationship of partnership, joint venture, employment, franchise or agency created hereby between the parties. Neither party will have the power to bind the other or incur obligations on the other party’s behalf without the other party’s prior written consent.
110
+ </p><p>
111
+ 11.9 <u>Force Majeure</u>. Neither party shall be liable to the other for any delay or failure to perform any obligation under this Agreement (except for a failure to pay fees) if the delay or failure is due to unforeseen events, which occur after the signing of this Agreement and which are beyond the reasonable control of the parties, such as strikes, blockade, war, terrorism, riots, natural disasters, refusal of license by the government or other governmental agencies, in so far as such an event prevents or delays the affected party from fulfilling its obligations and such party is not able to prevent or remove the force majeure at reasonable cost.
112
+ </p><p>
113
+ 11.10 <u>Government End-Users</u>. The Software is commercial computer software. If the user or licensee of the Software is an agency, department, or other entity of the United States Government, the use, duplication, reproduction, release, modification, disclosure, or transfer of the Software, or any related documentation of any kind, including technical data and manuals, is restricted by a license agreement or by the terms of this Agreement in accordance with Federal Acquisition Regulation 12.212 for civilian purposes and Defense Federal Acquisition Regulation Supplement 227.7202 for military purposes. The Software was developed fully at private expense. All other use is prohibited.
114
+ </p>
115
+ </body>
116
+ </html>
metadata ADDED
@@ -0,0 +1,154 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: blade-sauce_labs_plugin
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Javan Makhmali
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2015-08-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.10'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.10'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: webmock
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 1.21.0
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 1.21.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: blade
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: faraday
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: childprocess
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description:
98
+ email:
99
+ - javan@javan.us
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - ".gitignore"
105
+ - Gemfile
106
+ - LICENSE.txt
107
+ - README.md
108
+ - Rakefile
109
+ - bin/console
110
+ - bin/rake
111
+ - bin/setup
112
+ - blade-sauce_labs_plugin.gemspec
113
+ - lib/blade/sauce_labs_plugin.rb
114
+ - lib/blade/sauce_labs_plugin/cli.rb
115
+ - lib/blade/sauce_labs_plugin/client.rb
116
+ - lib/blade/sauce_labs_plugin/tunnel.rb
117
+ - lib/blade/sauce_labs_plugin/version.rb
118
+ - support/sc-linux/bin/sc
119
+ - support/sc-linux/include/sauceconnect.h
120
+ - support/sc-linux/lib/libsauceconnect.a
121
+ - support/sc-linux/lib/libsauceconnect.la
122
+ - support/sc-linux/license.html
123
+ - support/sc-osx/bin/sc
124
+ - support/sc-osx/bin/sc.dSYM/Contents/Info.plist
125
+ - support/sc-osx/bin/sc.dSYM/Contents/Resources/DWARF/sc
126
+ - support/sc-osx/include/sauceconnect.h
127
+ - support/sc-osx/lib/libsauceconnect.a
128
+ - support/sc-osx/lib/libsauceconnect.la
129
+ - support/sc-osx/license.html
130
+ homepage: https://github.com/javan/blade-sauce_labs_plugin
131
+ licenses:
132
+ - MIT
133
+ metadata: {}
134
+ post_install_message:
135
+ rdoc_options: []
136
+ require_paths:
137
+ - lib
138
+ required_ruby_version: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ required_rubygems_version: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: '0'
148
+ requirements: []
149
+ rubyforge_project:
150
+ rubygems_version: 2.4.6
151
+ signing_key:
152
+ specification_version: 4
153
+ summary: Blade Runner plugin for Sauce Labs (saucelabs.com)
154
+ test_files: []