rmpd 1.1.12 → 1.1.13
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 +7 -0
- data/Jenkinsfile +27 -0
- data/lib/rmpd/commands/admin.rb +2 -0
- data/lib/rmpd/connection.rb +31 -9
- data/lib/rmpd/version.rb +1 -1
- data/rmpd.gemspec +1 -1
- metadata +20 -30
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: bb4988929e39ec902157e3f0cc7bbdd5f84620d7
|
4
|
+
data.tar.gz: df089ffe90ceb7121317eaa749466adba80628c6
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 45b1d3ec4b78bcfc4499c54e33c3f6d827b7e6b2e87c1ef7bd1c36f4e45b2a6ce548b9ee6afd3c57ed79f41b69a95b7388b8f01f4772b3b6bfbc2a35ad392ee7
|
7
|
+
data.tar.gz: 9f246fef27256d620ab5e48142b8c835a41d55987e8bc5af6c1aa1095cf499a393a1f22dd04bca305a4f020f4ba080de727c6a05ff550668d8ef9a4c13053122
|
data/Jenkinsfile
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
// -*- groovy -*-
|
2
|
+
|
3
|
+
node {
|
4
|
+
workspace = pwd()
|
5
|
+
|
6
|
+
stage "Clone"
|
7
|
+
git branch: 'master', url: 'ssh://git@gitlab.xmtp.net:2222/mildred/rmpd.git', credentialsId: 'ssh-jenkins'
|
8
|
+
|
9
|
+
stage "Bundle"
|
10
|
+
sh '''#!/bin/bash -l
|
11
|
+
bundle install'''
|
12
|
+
|
13
|
+
stage "Test"
|
14
|
+
sh '''#!/bin/bash -l
|
15
|
+
bundle exec rake'''
|
16
|
+
|
17
|
+
stage "Build"
|
18
|
+
sh '''#!/bin/bash -l
|
19
|
+
bundle exec gem build ./rmpd.gemspec'''
|
20
|
+
|
21
|
+
stage name: "Deploy", concurrency: 1
|
22
|
+
sh '''#!/bin/bash
|
23
|
+
gem=$(ls rmpd*.gem | sort -n | tail -n 1)
|
24
|
+
ver=$(echo $gem | sed -e 's/^rmpd-//' -e 's/\\.gem$//')
|
25
|
+
bundle exec gem search --remote '^rmpd\\b' | grep -q $ver || bundle exec gem push $gem
|
26
|
+
'''
|
27
|
+
}
|
data/lib/rmpd/commands/admin.rb
CHANGED
data/lib/rmpd/connection.rb
CHANGED
@@ -16,14 +16,22 @@ module Rmpd
|
|
16
16
|
def initialize(config_file=nil)
|
17
17
|
@config = Rmpd::Config.new(config_file)
|
18
18
|
@socket = nil
|
19
|
+
@socket_mu = Mutex.new
|
19
20
|
end
|
20
21
|
|
21
22
|
def close
|
23
|
+
@socket_mu.lock
|
22
24
|
@socket.close
|
25
|
+
@socket_mu.unlock
|
23
26
|
end
|
24
27
|
|
25
28
|
def connect
|
26
|
-
|
29
|
+
@socket_mu.lock
|
30
|
+
unless @socket.nil? || @socket.closed?
|
31
|
+
@socket_mu.unlock
|
32
|
+
return
|
33
|
+
end
|
34
|
+
@socket_mu.unlock
|
27
35
|
|
28
36
|
if %r{^/} === @config.hostname
|
29
37
|
connect_unix_socket
|
@@ -36,14 +44,20 @@ module Rmpd
|
|
36
44
|
end
|
37
45
|
|
38
46
|
def connect_unix_socket
|
39
|
-
@
|
40
|
-
|
41
|
-
|
42
|
-
|
47
|
+
@socket_mu.lock
|
48
|
+
begin
|
49
|
+
@socket = UNIXSocket.new(@config.hostname)
|
50
|
+
rescue StandardError => error
|
51
|
+
@socket = nil
|
52
|
+
raise MpdConnRefusedError.new(error)
|
53
|
+
ensure
|
54
|
+
@socket_mu.unlock
|
55
|
+
end
|
43
56
|
end
|
44
57
|
|
45
58
|
def connect_inet_socket
|
46
59
|
Socket::getaddrinfo(@config.hostname, @config.port, nil, SOCK_STREAM).each do |info|
|
60
|
+
@socket_mu.lock
|
47
61
|
begin
|
48
62
|
sockaddr = Socket.pack_sockaddr_in(info[1], info[3])
|
49
63
|
@socket = Socket.new(info[4], info[5], 0)
|
@@ -53,6 +67,8 @@ module Rmpd
|
|
53
67
|
raise MpdConnRefusedError.new(error)
|
54
68
|
else
|
55
69
|
break
|
70
|
+
ensure
|
71
|
+
@socket_mu.unlock
|
56
72
|
end
|
57
73
|
end
|
58
74
|
end
|
@@ -60,8 +76,9 @@ module Rmpd
|
|
60
76
|
def send_command(command, *args)
|
61
77
|
tries = 0
|
62
78
|
|
79
|
+
connect
|
80
|
+
@socket_mu.lock
|
63
81
|
begin
|
64
|
-
connect
|
65
82
|
@socket.puts("#{command} #{quote(args).join(" ")}".strip)
|
66
83
|
rescue Errno::EPIPE, EOFError
|
67
84
|
@socket.close
|
@@ -70,16 +87,21 @@ module Rmpd
|
|
70
87
|
else
|
71
88
|
raise MpdError.new("Retry count exceeded")
|
72
89
|
end
|
90
|
+
ensure
|
91
|
+
@socket_mu.unlock
|
73
92
|
end
|
74
93
|
end
|
75
94
|
|
76
95
|
def read_response
|
77
96
|
response = []
|
78
97
|
|
79
|
-
|
80
|
-
|
81
|
-
|
98
|
+
@socket_mu.synchronize do
|
99
|
+
while (line = @socket.readline.force_encoding("UTF-8"))
|
100
|
+
response << line.strip
|
101
|
+
break if END_RE === line
|
102
|
+
end
|
82
103
|
end
|
104
|
+
|
83
105
|
response
|
84
106
|
end
|
85
107
|
|
data/lib/rmpd/version.rb
CHANGED
data/rmpd.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.require_paths = ["lib"]
|
21
21
|
|
22
22
|
s.add_development_dependency("rspec", "~> 2.6.0")
|
23
|
-
s.add_development_dependency("
|
23
|
+
s.add_development_dependency("byebug")
|
24
24
|
s.add_development_dependency("rake")
|
25
25
|
s.add_development_dependency("pry")
|
26
26
|
end
|
metadata
CHANGED
@@ -1,78 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rmpd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.1.13
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Eric Wollesen
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2016-
|
11
|
+
date: 2016-09-02 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rspec
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- - ~>
|
17
|
+
- - "~>"
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 2.6.0
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- - ~>
|
24
|
+
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: 2.6.0
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
28
|
+
name: byebug
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ">="
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - ">="
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rake
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - ">="
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - ">="
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: pry
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - ">="
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - ">="
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
description: Music Player Daemon client in Ruby
|
@@ -82,10 +73,11 @@ executables: []
|
|
82
73
|
extensions: []
|
83
74
|
extra_rdoc_files: []
|
84
75
|
files:
|
85
|
-
- .gitignore
|
86
|
-
- .rspec
|
87
|
-
- .rvmrc
|
76
|
+
- ".gitignore"
|
77
|
+
- ".rspec"
|
78
|
+
- ".rvmrc"
|
88
79
|
- Gemfile
|
80
|
+
- Jenkinsfile
|
89
81
|
- Rakefile
|
90
82
|
- console.rb
|
91
83
|
- lib/rmpd.rb
|
@@ -120,27 +112,25 @@ files:
|
|
120
112
|
- spec/spec_rcov.opts
|
121
113
|
homepage: http://github.com/ewollesen/rmpd
|
122
114
|
licenses: []
|
115
|
+
metadata: {}
|
123
116
|
post_install_message:
|
124
117
|
rdoc_options: []
|
125
118
|
require_paths:
|
126
119
|
- lib
|
127
120
|
required_ruby_version: !ruby/object:Gem::Requirement
|
128
|
-
none: false
|
129
121
|
requirements:
|
130
|
-
- -
|
122
|
+
- - ">="
|
131
123
|
- !ruby/object:Gem::Version
|
132
124
|
version: '0'
|
133
125
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
|
-
none: false
|
135
126
|
requirements:
|
136
|
-
- -
|
127
|
+
- - ">="
|
137
128
|
- !ruby/object:Gem::Version
|
138
129
|
version: '0'
|
139
130
|
requirements: []
|
140
131
|
rubyforge_project:
|
141
|
-
rubygems_version:
|
132
|
+
rubygems_version: 2.5.1
|
142
133
|
signing_key:
|
143
|
-
specification_version:
|
134
|
+
specification_version: 4
|
144
135
|
summary: Music Player Daemon client in Ruby
|
145
136
|
test_files: []
|
146
|
-
has_rdoc:
|