sys-filesystem 1.3.2 → 1.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: baa1ca06971a27b95e31d7bd54db2b46f31b7e26169c4e69ed4044484db4d29b
4
- data.tar.gz: 559a709c51890ffc12245eff51c5e42f3cb370b66bb0cc6642c71290b814f223
3
+ metadata.gz: cb5e1c3d785d6a557963b4d880fd7f769818ad7d11613744ff458edae1f0c55b
4
+ data.tar.gz: d6277cbfd44841a48a4d20c7b343401fdaaea8ddaf5ce8832b8ce86b4d953eef
5
5
  SHA512:
6
- metadata.gz: 9f7d98d8078417571438c1aa76afc5f0955ed08d8731a7afbb9f67b9590daaab8ba2226b3766ae850c4cece3aa1da8dd6cc21517bfeb727eb80249b5feb85469
7
- data.tar.gz: c5b160edfc3988b9e6ab38ba0a3c2b551338a02006f181c3604446f17c6ad8771000c090f68adf28dbba467b22745ba86ad6bfebf85ad6b8d7af6ce1862a97bb
6
+ metadata.gz: 3204a9f665966f705224d564cfca033f8f8265ed21522695f856ac2d86c25c2b995d0d7de1cc37375f0ef235e2a84aeae54eb751c9aa30f97bcb0d53c99cdcf6
7
+ data.tar.gz: c67c70c0c39a29515e54e47f3313d41471d5862561751040deb471a49ad81afd8f956b062eca7496f56fc366d16e6f547d47fa313155262dc9bfdf8fcdc43d3f
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -1,3 +1,7 @@
1
+ == 1.3.3 - 18-Feb-2020
2
+ * Linux now uses statvfs64 under the hood. This fixes a potential issue with
3
+ 32 bit systems. Thanks go to Tom Smyth for the spot.
4
+
1
5
  == 1.3.2 - 8-Dec-2019
2
6
  * Renamed various text files to include .rdoc extension so that github renders
3
7
  them nicely.
@@ -0,0 +1,72 @@
1
+ ######################################################################
2
+ # example_mount.rb
3
+ #
4
+ # Example program that demonstrates the Filesystem.mount method.
5
+ # Simulates the `mount` command in ruby
6
+ ######################################################################
7
+ require 'optparse'
8
+
9
+ options = {:mount_options => []}
10
+ OptionParser.new do |opts|
11
+ opts.banner = "Usage: #$0 [-o options] [-t external_type] special node"
12
+
13
+ opts.on("-o=OPTIONS", "Set one or many mount options (comma delimited)") do |opts|
14
+ options[:mount_options] += opts.split(',')
15
+ end
16
+
17
+ opts.on("-r", "Set readonly flag") do
18
+ options[:read_only] = true
19
+ end
20
+
21
+ opts.on("-t=EXTERNAL_TYPE", "Set the filesystem type") do |type|
22
+ options[:type] = type
23
+ end
24
+
25
+ opts.on("-v", "--version", "Display version") do
26
+ options[:version] = true
27
+ end
28
+
29
+ opts.separator ""
30
+ opts.separator "Examples:"
31
+ opts.separator ""
32
+ opts.separator " NFS: ruby #$0 -t nfs 192.168.0.10:/var/nfs /mnt/nfs"
33
+ opts.separator ""
34
+ opts.separator " SMB: ruby #$0 -t cifs //192.168.0.10/share /mnt/smb/ -o username=user,password=pass,domain=example.com"
35
+ opts.separator ""
36
+ end.parse!
37
+
38
+ require 'sys/filesystem'
39
+ include Sys
40
+
41
+ if options[:version]
42
+ puts "Sys::Filesystem::VERSION: #{Filesystem::VERSION}"
43
+ exit
44
+ end
45
+
46
+ def die msg
47
+ warn msg
48
+ exit 1
49
+ end
50
+
51
+ mount_flags = options[:read_only] ? Filesystem::MNT_RDONLY : 0
52
+ mnt_path, mnt_point = ARGV[0,2]
53
+
54
+ case options[:type]
55
+ when "cifs"
56
+ # keep mnt_path as is
57
+ when "nfs"
58
+ host, path, err = mnt_path.split(":")
59
+
60
+ die "ERROR: mount_pount '#{mnt_path}' should only contain 1 ':'" if err
61
+
62
+ mnt_path = ":#{path}"
63
+ options[:mount_options] << "addr=#{host}"
64
+ else
65
+ die "ERROR: unknown mount type!"
66
+ end
67
+
68
+ Filesystem.mount mnt_path,
69
+ mnt_point,
70
+ options[:type],
71
+ mount_flags,
72
+ options[:mount_options].join(',')
@@ -1,7 +1,7 @@
1
1
  module Sys
2
2
  class Filesystem
3
3
  # The version of the sys-filesystem library
4
- VERSION = '1.3.2'.freeze
4
+ VERSION = '1.3.3'.freeze
5
5
  end
6
6
  end
7
7
 
@@ -7,7 +7,7 @@ module Sys
7
7
 
8
8
  ffi_lib FFI::Library::LIBC
9
9
 
10
- if RbConfig::CONFIG['host_os'] =~ /sunos|solaris/i
10
+ if RbConfig::CONFIG['host_os'] =~ /sunos|solaris|linux/i
11
11
  attach_function(:statvfs, :statvfs64, [:string, :pointer], :int)
12
12
  else
13
13
  attach_function(:statvfs, [:string, :pointer], :int)
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = 'sys-filesystem'
5
- spec.version = '1.3.2'
5
+ spec.version = '1.3.3'
6
6
  spec.author = 'Daniel J. Berger'
7
7
  spec.email = 'djberg96@gmail.com'
8
8
  spec.homepage = 'https://github.com/djberg96/sys-filesystem'
@@ -27,7 +27,7 @@ class TC_Sys_Filesystem_Unix < Test::Unit::TestCase
27
27
  end
28
28
 
29
29
  test "version number is set to the expected value" do
30
- assert_equal('1.3.2', Filesystem::VERSION)
30
+ assert_equal('1.3.3', Filesystem::VERSION)
31
31
  assert_true(Filesystem::VERSION.frozen?)
32
32
  end
33
33
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sys-filesystem
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel J. Berger
@@ -100,16 +100,17 @@ email: djberg96@gmail.com
100
100
  executables: []
101
101
  extensions: []
102
102
  extra_rdoc_files:
103
- - CHANGES.rdoc
104
103
  - MANIFEST.rdoc
105
104
  - README.rdoc
105
+ - CHANGES.rdoc
106
106
  files:
107
107
  - test
108
108
  - test/test_sys_filesystem.rb
109
- - test/test_sys_filesystem_unix.rb
110
109
  - test/test_sys_filesystem_windows.rb
110
+ - test/test_sys_filesystem_unix.rb
111
111
  - examples
112
112
  - examples/example_stat.rb
113
+ - examples/example_mount.rb
113
114
  - lib
114
115
  - lib/sys
115
116
  - lib/sys/unix
@@ -117,8 +118,8 @@ files:
117
118
  - lib/sys/unix/sys/filesystem.rb
118
119
  - lib/sys/unix/sys/filesystem
119
120
  - lib/sys/unix/sys/filesystem/constants.rb
120
- - lib/sys/unix/sys/filesystem/functions.rb
121
121
  - lib/sys/unix/sys/filesystem/structs.rb
122
+ - lib/sys/unix/sys/filesystem/functions.rb
122
123
  - lib/sys/windows
123
124
  - lib/sys/windows/sys
124
125
  - lib/sys/windows/sys/filesystem.rb
@@ -131,10 +132,10 @@ files:
131
132
  - Rakefile
132
133
  - certs
133
134
  - certs/djberg96_pub.pem
134
- - CHANGES.rdoc
135
135
  - MANIFEST.rdoc
136
136
  - README.rdoc
137
137
  - sys-filesystem.gemspec
138
+ - CHANGES.rdoc
138
139
  homepage: https://github.com/djberg96/sys-filesystem
139
140
  licenses:
140
141
  - Apache-2.0
@@ -166,5 +167,5 @@ specification_version: 4
166
167
  summary: A Ruby interface for getting file system information.
167
168
  test_files:
168
169
  - test/test_sys_filesystem.rb
169
- - test/test_sys_filesystem_unix.rb
170
170
  - test/test_sys_filesystem_windows.rb
171
+ - test/test_sys_filesystem_unix.rb
metadata.gz.sig CHANGED
Binary file