mountpoints 1.0.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/USAGE.md +14 -0
- data/lib/mountpoints.rb +1 -0
- data/lib/mountpoints/mountpoints.rb +251 -0
- data/lib/mountpoints/version/version.rb +12 -0
- data/mountpoints.gemspec +59 -0
- data/test/testing_mountpoints.rb +4 -0
- metadata +105 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a6ff0a164ec1b673135a911e81a3ec5648cff9b736f297aa087160245e13093c
|
4
|
+
data.tar.gz: c61a3240c419aa4598240dfc95e36db9ce372e3369b6eb014aabd04f2c81ea46
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1e70743c2d4769ae3e9a211324c49ef298f8f430708ab57ac6d018b657543323ad915dd416416747ed5e62e23a7dc7841b58aed400e2548fe636be1eb42dbda8
|
7
|
+
data.tar.gz: 34c0c875dd9411458d76cde4a5f905475aae8173fe1fadd03b29048efd8b213def357ffedcdaf796623609a34ef71621415623ddebfee558b1647bf663ab469d
|
data/USAGE.md
ADDED
data/lib/mountpoints.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'mountpoints/mountpoints.rb'
|
@@ -0,0 +1,251 @@
|
|
1
|
+
#!/System/Index/bin/ruby -w
|
2
|
+
# Encoding: ISO-8859-1
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# === Mountpoints
|
6
|
+
#
|
7
|
+
# This class will scan for all mounted USB-devices first. Then it will
|
8
|
+
# try to find a specific entry, if you give an argument to .find().
|
9
|
+
#
|
10
|
+
# Arguments to find() could be:
|
11
|
+
#
|
12
|
+
# '*'
|
13
|
+
#
|
14
|
+
# The above will return an array of all found entries.
|
15
|
+
#
|
16
|
+
# We may also store the target device in attr_reader :mounted_here
|
17
|
+
#
|
18
|
+
# Additionally, this class may use colours to provide easier to
|
19
|
+
# read information.
|
20
|
+
#
|
21
|
+
# Usage examples:
|
22
|
+
# Mountpoints.new
|
23
|
+
# Mountpoints.show
|
24
|
+
# Mountpoints.is_any_mountpoint_available?
|
25
|
+
# =========================================================================== #
|
26
|
+
# require 'mountpoints'
|
27
|
+
# =========================================================================== #
|
28
|
+
begin
|
29
|
+
require 'colours'
|
30
|
+
rescue LoadError; end
|
31
|
+
require 'opn'
|
32
|
+
require 'mountpoints/version/version.rb'
|
33
|
+
|
34
|
+
class Mountpoints # === Mountpoints.new
|
35
|
+
|
36
|
+
include Colours
|
37
|
+
|
38
|
+
N = "\n"
|
39
|
+
|
40
|
+
# ========================================================================= #
|
41
|
+
# === LJUST
|
42
|
+
# ========================================================================= #
|
43
|
+
LJUST = 15
|
44
|
+
|
45
|
+
# ========================================================================= #
|
46
|
+
# === DF_COMMAND
|
47
|
+
# ========================================================================= #
|
48
|
+
DF_COMMAND = 'df -T -ah'
|
49
|
+
|
50
|
+
# ========================================================================= #
|
51
|
+
# === FDISK_COMMAND
|
52
|
+
# ========================================================================= #
|
53
|
+
FDISK_COMMAND = 'fdisk -l'
|
54
|
+
|
55
|
+
# ========================================================================= #
|
56
|
+
# === DEBUG
|
57
|
+
# ========================================================================= #
|
58
|
+
DEBUG = false # If true then we will debug.
|
59
|
+
|
60
|
+
# ========================================================================= #
|
61
|
+
# === initialize
|
62
|
+
#
|
63
|
+
# If the first argument is :be_extra_verbose then we will show more
|
64
|
+
# information.
|
65
|
+
# ========================================================================= #
|
66
|
+
def initialize(
|
67
|
+
run_already = true
|
68
|
+
)
|
69
|
+
reset
|
70
|
+
case run_already
|
71
|
+
when :be_extra_verbose
|
72
|
+
@be_extra_verbose = true
|
73
|
+
run_already = true
|
74
|
+
when :normal_verbosity # Simply pass through here.
|
75
|
+
end
|
76
|
+
run if run_already
|
77
|
+
end
|
78
|
+
|
79
|
+
# ========================================================================= #
|
80
|
+
# === reset
|
81
|
+
# ========================================================================= #
|
82
|
+
def reset
|
83
|
+
@be_extra_verbose = false
|
84
|
+
@command_to_run = DF_COMMAND # This command will be run.
|
85
|
+
end
|
86
|
+
|
87
|
+
# ========================================================================= #
|
88
|
+
# === set_result
|
89
|
+
# ========================================================================= #
|
90
|
+
def set_result(i)
|
91
|
+
if i.is_a? String
|
92
|
+
i << '/' unless i.end_with? '/'
|
93
|
+
elsif i.is_a? Array
|
94
|
+
# ===================================================================== #
|
95
|
+
# Do not flatten here as we may have more than one Array-entry.
|
96
|
+
# ===================================================================== #
|
97
|
+
i.map! {|entry|
|
98
|
+
entry[0] = rds(entry.first+'/')
|
99
|
+
entry
|
100
|
+
} # We want directories to end in a '/'.
|
101
|
+
end
|
102
|
+
if i.is_a? Array
|
103
|
+
i.sort_by! {|entry| entry }
|
104
|
+
end
|
105
|
+
@result = i # Will include trailing /.
|
106
|
+
determine_mountpoints
|
107
|
+
end
|
108
|
+
|
109
|
+
# ========================================================================= #
|
110
|
+
# === rds
|
111
|
+
# ========================================================================= #
|
112
|
+
def rds(i)
|
113
|
+
i.squeeze('/')
|
114
|
+
end
|
115
|
+
|
116
|
+
# ========================================================================= #
|
117
|
+
# === determine_mountpoints
|
118
|
+
#
|
119
|
+
# The @array_mountpoints will keep all directory-names with a trailing
|
120
|
+
# '/'. In other words, the mountpoints will be stored there.
|
121
|
+
# ========================================================================= #
|
122
|
+
def determine_mountpoints
|
123
|
+
@array_mountpoints = @result.map {|entry| entry.first }
|
124
|
+
end
|
125
|
+
|
126
|
+
# ========================================================================= #
|
127
|
+
# === determine_result
|
128
|
+
#
|
129
|
+
# This method will run the df-command.
|
130
|
+
# ========================================================================= #
|
131
|
+
def determine_result
|
132
|
+
if debug?
|
133
|
+
e "Now running this command: #{sfancy(@command_to_run)}"
|
134
|
+
end
|
135
|
+
@result = `#{@command_to_run}`.split(N) # This will keep the main result.
|
136
|
+
_ = @result.reject {|entry| !entry.include? '/Mount' }.
|
137
|
+
reject {|entry| !entry.include? 'USB' }
|
138
|
+
# ======================================================================= #
|
139
|
+
# At this point, we have only the entries that have /Mount as part
|
140
|
+
# of their name.
|
141
|
+
# ======================================================================= #
|
142
|
+
_.map! {|entry|
|
143
|
+
splitted = entry.split(' ')
|
144
|
+
# filesize =
|
145
|
+
entry = [ splitted[-1], splitted.first, splitted[2] ]
|
146
|
+
}
|
147
|
+
set_result _ # Now contains the mountpoints here.
|
148
|
+
end
|
149
|
+
|
150
|
+
# ========================================================================= #
|
151
|
+
# === report_result
|
152
|
+
# ========================================================================= #
|
153
|
+
def report_result
|
154
|
+
if @be_extra_verbose
|
155
|
+
if result?.empty?
|
156
|
+
opn; e 'We did not find any mount point. We conclude that '\
|
157
|
+
'no USB device is mounted.'
|
158
|
+
else
|
159
|
+
opn; e 'We did find these mount points:'
|
160
|
+
e
|
161
|
+
result?.each {|line|
|
162
|
+
filesize = line[2]
|
163
|
+
name_of_device = line[1]
|
164
|
+
mounted_here = line[0]
|
165
|
+
efancy ' '+mounted_here.ljust(LJUST)+' '+
|
166
|
+
swarn(name_of_device)+' '+
|
167
|
+
'('+Colours.green(filesize)+')'
|
168
|
+
}
|
169
|
+
e
|
170
|
+
end
|
171
|
+
else # else we report "normally.
|
172
|
+
e result?.join(N)
|
173
|
+
end
|
174
|
+
end; alias report_colourized_result report_result # Not sure what to do with this here.
|
175
|
+
|
176
|
+
# ========================================================================= #
|
177
|
+
# === result?
|
178
|
+
# ========================================================================= #
|
179
|
+
def result?
|
180
|
+
@result
|
181
|
+
end; alias result result? # === result
|
182
|
+
|
183
|
+
# ========================================================================= #
|
184
|
+
# === debug?
|
185
|
+
# ========================================================================= #
|
186
|
+
def debug?
|
187
|
+
DEBUG
|
188
|
+
end
|
189
|
+
|
190
|
+
# ========================================================================= #
|
191
|
+
# === array_mountpoints?
|
192
|
+
# ========================================================================= #
|
193
|
+
def array_mountpoints? # This should always be an Array.
|
194
|
+
@array_mountpoints
|
195
|
+
end; alias array_mountpoints array_mountpoints? # === array_mountpoints
|
196
|
+
|
197
|
+
# ========================================================================= #
|
198
|
+
# === run (run tag)
|
199
|
+
# ========================================================================= #
|
200
|
+
def run
|
201
|
+
determine_result
|
202
|
+
end
|
203
|
+
|
204
|
+
# ========================================================================= #
|
205
|
+
# === Mountpoints.report
|
206
|
+
# ========================================================================= #
|
207
|
+
def self.report
|
208
|
+
Mountpoints[:be_extra_verbose]
|
209
|
+
end
|
210
|
+
|
211
|
+
# ========================================================================= #
|
212
|
+
# === Mountpoints[]
|
213
|
+
#
|
214
|
+
# This method will return an array such as:
|
215
|
+
# ["/Mount/USB1/"]
|
216
|
+
#
|
217
|
+
# In other words, it will be a silent result.
|
218
|
+
#
|
219
|
+
# Mountpoints[]
|
220
|
+
# Mountpoints[:be_extra_verbose]
|
221
|
+
# ========================================================================= #
|
222
|
+
def self.[](be_extra_verbose = :normal_verbosity)
|
223
|
+
if be_extra_verbose == :be_extra_verbose
|
224
|
+
_ = Mountpoints.new(be_extra_verbose)
|
225
|
+
_.report_result
|
226
|
+
else
|
227
|
+
Mountpoints.new(be_extra_verbose).array_mountpoints
|
228
|
+
end
|
229
|
+
end
|
230
|
+
|
231
|
+
# ========================================================================= #
|
232
|
+
# === Mountpoints.is_any_mountpoint_available?
|
233
|
+
# ========================================================================= #
|
234
|
+
def self.is_any_mountpoint_available?
|
235
|
+
!Mountpoints.new(:be_quiet).array_mountpoints.empty?
|
236
|
+
end
|
237
|
+
|
238
|
+
# ========================================================================= #
|
239
|
+
# === Mountpoints.show
|
240
|
+
# ========================================================================= #
|
241
|
+
def self.show
|
242
|
+
Mountpoints.new :be_extra_verbose
|
243
|
+
end
|
244
|
+
|
245
|
+
end
|
246
|
+
|
247
|
+
if __FILE__ == $PROGRAM_NAME
|
248
|
+
_ = Mountpoints.new :be_extra_verbose
|
249
|
+
_.report_result
|
250
|
+
# p _.result?
|
251
|
+
end # mountpoints
|
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/System/Index/bin/ruby -w
|
2
|
+
# Encoding: ISO-8859-1
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
class Mountpoints
|
6
|
+
|
7
|
+
# ========================================================================= #
|
8
|
+
# === Mountpoints::VERSION
|
9
|
+
# ========================================================================= #
|
10
|
+
VERSION = '1.0.13'
|
11
|
+
|
12
|
+
end
|
data/mountpoints.gemspec
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
# =========================================================================== #
|
2
|
+
# Gemspec for Project Mountpoints.
|
3
|
+
# =========================================================================== #
|
4
|
+
require 'mountpoints/version/version.rb'
|
5
|
+
|
6
|
+
Gem::Specification.new { |s|
|
7
|
+
|
8
|
+
s.name = 'mountpoints'
|
9
|
+
s.version = Mountpoints::VERSION
|
10
|
+
s.date = Time.now.strftime('%Y-%m-%d')
|
11
|
+
|
12
|
+
DESCRIPTION = <<-EOF
|
13
|
+
|
14
|
+
This class will give you back all mountpoints on a Linux
|
15
|
+
System. Please do note that this works only via "fdisk",
|
16
|
+
and even then not always. It was mostly a "throw-away"
|
17
|
+
gem that I can use, rather than having to parse the
|
18
|
+
output of "fdisk -l".
|
19
|
+
|
20
|
+
Also do note that we are only interested in external
|
21
|
+
devices that are mounted that way, NOT other
|
22
|
+
mountpoints.
|
23
|
+
|
24
|
+
To use this in Ruby, do:
|
25
|
+
|
26
|
+
require 'mountpoints'
|
27
|
+
Mountpoints.show
|
28
|
+
|
29
|
+
If you have specific suggestions to make this gem more
|
30
|
+
useful for others, please drop me an email at:
|
31
|
+
|
32
|
+
shevegen@gmail.com
|
33
|
+
|
34
|
+
Thank you.
|
35
|
+
|
36
|
+
EOF
|
37
|
+
s.summary = DESCRIPTION
|
38
|
+
s.description = DESCRIPTION
|
39
|
+
|
40
|
+
s.extra_rdoc_files = %w()
|
41
|
+
|
42
|
+
s.authors = ['Robert A. Heiler']
|
43
|
+
s.email = 'shevegen@gmail.com'
|
44
|
+
s.files = Dir['**/*']
|
45
|
+
s.files << 'USAGE.md'
|
46
|
+
s.license = 'GPL-2.0'
|
47
|
+
s.homepage = 'http://rubygems.org/gems/mountpoints'
|
48
|
+
|
49
|
+
s.required_ruby_version = '>= '+RUBY_VERSION
|
50
|
+
s.required_rubygems_version = '>= '+Gem::VERSION
|
51
|
+
s.rubygems_version = '>= '+Gem::VERSION
|
52
|
+
|
53
|
+
# ========================================================================= #
|
54
|
+
# Dependencies
|
55
|
+
# ========================================================================= #
|
56
|
+
s.add_dependency 'colours'
|
57
|
+
s.add_dependency 'opn'
|
58
|
+
|
59
|
+
}
|
metadata
ADDED
@@ -0,0 +1,105 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mountpoints
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.13
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Robert A. Heiler
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-05-03 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: colours
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: opn
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
description: |2+
|
42
|
+
|
43
|
+
This class will give you back all mountpoints on a Linux
|
44
|
+
System. Please do note that this works only via "fdisk",
|
45
|
+
and even then not always. It was mostly a "throw-away"
|
46
|
+
gem that I can use, rather than having to parse the
|
47
|
+
output of "fdisk -l".
|
48
|
+
|
49
|
+
Also do note that we are only interested in external
|
50
|
+
devices that are mounted that way, NOT other
|
51
|
+
mountpoints.
|
52
|
+
|
53
|
+
To use this in Ruby, do:
|
54
|
+
|
55
|
+
require 'mountpoints'
|
56
|
+
Mountpoints.show
|
57
|
+
|
58
|
+
If you have specific suggestions to make this gem more
|
59
|
+
useful for others, please drop me an email at:
|
60
|
+
|
61
|
+
shevegen@gmail.com
|
62
|
+
|
63
|
+
Thank you.
|
64
|
+
|
65
|
+
email: shevegen@gmail.com
|
66
|
+
executables: []
|
67
|
+
extensions: []
|
68
|
+
extra_rdoc_files: []
|
69
|
+
files:
|
70
|
+
- USAGE.md
|
71
|
+
- lib/mountpoints.rb
|
72
|
+
- lib/mountpoints/mountpoints.rb
|
73
|
+
- lib/mountpoints/version/version.rb
|
74
|
+
- mountpoints.gemspec
|
75
|
+
- test/testing_mountpoints.rb
|
76
|
+
homepage: http://rubygems.org/gems/mountpoints
|
77
|
+
licenses:
|
78
|
+
- GPL-2.0
|
79
|
+
metadata: {}
|
80
|
+
post_install_message:
|
81
|
+
rdoc_options: []
|
82
|
+
require_paths:
|
83
|
+
- lib
|
84
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: 2.6.3
|
89
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - ">="
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 3.0.3
|
94
|
+
requirements: []
|
95
|
+
rubygems_version: 3.0.3
|
96
|
+
signing_key:
|
97
|
+
specification_version: 4
|
98
|
+
summary: 'This class will give you back all mountpoints on a Linux System. Please
|
99
|
+
do note that this works only via "fdisk", and even then not always. It was mostly
|
100
|
+
a "throw-away" gem that I can use, rather than having to parse the output of "fdisk
|
101
|
+
-l". Also do note that we are only interested in external devices that are mounted
|
102
|
+
that way, NOT other mountpoints. To use this in Ruby, do: require ''mountpoints''
|
103
|
+
Mountpoints.show If you have specific suggestions to make this gem more useful
|
104
|
+
for others, please drop me an email at: shevegen@gmail.com Thank you.'
|
105
|
+
test_files: []
|