clicker 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 61de25b14a658928928618d29bc508ed9edb9fa2
4
- data.tar.gz: ba7ba93e532f495e374bf58b5fcfdfae188968c3
3
+ metadata.gz: ea84096718d5bf96651f028213a16f458f827da5
4
+ data.tar.gz: faa5d185de541b7ed94fb8b8f151fd29eb7b3ee5
5
5
  SHA512:
6
- metadata.gz: 110cfa7704d43330775723d8ca5d554d6034d87a9d1e7b16462f3b2e6b08cea14f4a692afcdd1b22f319f247393eb1a09e89c0df6cd30beb476e6264be500eed
7
- data.tar.gz: d1d527f30aae8ffeb40347f7265d2345325a77f2f9882de5007d2cf9a98bace03cac97e7500d1d97412bca640d097a05b1e378cc366ea65e69e362c15c485d86
6
+ metadata.gz: b7579cff852877011e175da251d7cea71598b85c7226b838e525e32a6f11b88d6e8f593e15635eaad69b339f9de9926f9c435dd3ba95f4c8ba4a1983df9eb9b6
7
+ data.tar.gz: 327c8f3be65f153ccb19a6fcc9dcf2cb75c790c15285f0ec63964aeae600641bb9efc301e5433f80ce00e9c05f1d20e6e1fa42e829fc338f014b8327c0a6a276
data/README.md CHANGED
@@ -10,22 +10,24 @@
10
10
  ンでは、`sudo apt install evtest` でインストールされると思います。
11
11
  3. キーボードデバイスへのアクセス権限。すなわち、
12
12
  `/dev/input/by-path/platform-i8042-serio-0-event-kbd` が開ける必要
13
- があります。通常、開けないので、デバイスファイルのパーミッションを
14
- 変更するか、ユーザーを input グループに追加してください。`sudo
15
- addgroup ユーザー名 input`[^1]
13
+ があります。通常開けないので、デバイスファイルのパーミッションを変
14
+ 更するか、ユーザーを適切なグループに追加してください。`sudo
15
+ addgroup ユーザー名 input` 等。
16
16
  4. SDL_mixer ライブラリがインストールされ、rubysdl ジェムから利用でき
17
17
  る必要があります。`sudo apt install libsdl-mixer1.2-dev` 等とした後、
18
18
  rubysdl ジェムを(再)インストールしてください。
19
19
 
20
- [^1]: 通常、任意のプログラムからキーボードを盗聴できるようにするのは、良い考えではありません。
21
-
22
20
  ## インストール
23
21
 
24
22
  $ sudo apt install evtest
25
- $ sudo addgroup ユーザー input
26
23
  $ sudo apt install libsdl-mixer1.2-dev
27
24
  $ sudo gem install clicker
28
25
 
26
+ $ sudo addgroup ユーザー input
27
+ あるいは
28
+ $ sudo chmod o+r /dev/input/by-path/platform-i8042-serio-0-event-kbd
29
+
30
+
29
31
  ## 使い方
30
32
 
31
33
  以下のようにするとキーを押すたびに音がなるようになります。
data/clicker.gemspec CHANGED
@@ -19,6 +19,8 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
21
 
22
+ spec.required_ruby_version = '>= 2.0.0'
23
+
22
24
  spec.add_dependency "rubysdl", "~> 2.2.0"
23
25
  spec.add_development_dependency "bundler", "~> 1.11"
24
26
  spec.add_development_dependency "rake", "~> 10.0"
@@ -19,17 +19,8 @@ class LaunchLock
19
19
  return true
20
20
  rescue
21
21
  return false
22
- end
23
-
24
- def unlock
25
- File.open(@lock_file_path) do |f|
26
- pid = f.gets.to_i
27
- Process.kill("TERM", pid)
28
- end
29
- FileUtils.rm(@lock_file_path)
30
- return true
31
- rescue Errno::ENOENT
32
- return false
22
+ ensure
23
+ FileUtils.rm(@lock_file_path)
33
24
  end
34
25
 
35
26
  def locked?
@@ -54,10 +54,20 @@ class Program
54
54
  when :stop
55
55
  if @lock.locked?
56
56
  owner = @lock.owner
57
- if @lock.unlock
58
- STDERR.puts("SIGTERM has been sent to PID #{owner}.")
59
- else
60
- STDERR.puts("failed to unlock")
57
+ Process.kill("TERM", owner)
58
+ STDERR.puts("SIGTERM has been sent to PID #{owner}.")
59
+ success = false
60
+ sleep 0.1
61
+ 5.times do
62
+ unless File.exist? @lock.lock_file_path
63
+ success = true
64
+ break
65
+ end
66
+ sleep 1
67
+ end
68
+ unless success
69
+ STDERR.puts("Error: failed to unlock")
70
+ STDERR.puts("the lock file is at #{@lock.lock_file_path}.")
61
71
  end
62
72
  else
63
73
  STDERR.puts("no instance is running.")
@@ -1,3 +1,3 @@
1
1
  module Clicker
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clicker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yoteichi
@@ -104,7 +104,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
104
104
  requirements:
105
105
  - - ">="
106
106
  - !ruby/object:Gem::Version
107
- version: '0'
107
+ version: 2.0.0
108
108
  required_rubygems_version: !ruby/object:Gem::Requirement
109
109
  requirements:
110
110
  - - ">="