Module: NiTo
- Included in:
- Clean, Dracut::Root, Fstab::Root, Getch::Assembly, Getch::Config::Dhcp, Getch::Config::Grub, Getch::Config::Iwd, Getch::Config::Keymap, Getch::Config::Locale, Getch::Config::Portage, Getch::Config::PreNetwork, Getch::Config::TimeZone, Getch::FileSystem::Zfs::Minimal::Deps, Getch::Gentoo::PostConfig, Getch::Gentoo::PreConfig, Getch::Gentoo::Sources, Getch::Gentoo::Update, Getch::Gentoo::Use, Getch::Options, Luks::Main, MountFs::Minimal
- Defined in:
- lib/nito.rb
Overview
uNix Tools like mkdir, mount in Ruby code
Class Method Summary collapse
- .cp(src, dest) ⇒ Object
-
.echo(file, content) ⇒ Object
Like echo ‘content’ > to_file.
-
.echo_a(file, content) ⇒ Object
Like echo ‘content’ >> to_file.
- .grep?(file, search) ⇒ Boolean
- .mkdir(path, perm = 0755) ⇒ Object
-
.mount(*args) ⇒ Object
Mount, accept *args, the last argument should be the destination e.g: mount ‘–types proc’, ‘/proc’, ‘/mnt/getch/proc’.
- .mount?(dir) ⇒ Boolean
- .rm(file) ⇒ Object
- .search_proc_swaps(path) ⇒ Object
-
.sed(file, regex, change) ⇒ Object
Like sed -i /old:new/ file.
- .sh(*args) ⇒ Object
- .swapoff(dev) ⇒ Object
- .swapoff_dm(name) ⇒ Object
-
.touch(file) ⇒ Object
create a void file.
- .umount(dir) ⇒ Object
Class Method Details
.cp(src, dest) ⇒ Object
66 67 68 |
# File 'lib/nito.rb', line 66 def cp(src, dest) FileUtils.cp src, dest end |
.echo(file, content) ⇒ Object
Like echo ‘content’ > to_file
57 58 59 |
# File 'lib/nito.rb', line 57 def echo(file, content) File.write(file, "#{content}\n") end |
.echo_a(file, content) ⇒ Object
Like echo ‘content’ >> to_file
62 63 64 |
# File 'lib/nito.rb', line 62 def echo_a(file, content) File.write(file, "#{content}\n", mode: 'a') unless grep? file, content end |
.grep?(file, search) ⇒ Boolean
19 20 21 22 23 24 25 26 27 |
# File 'lib/nito.rb', line 19 def grep?(file, search) is_found = false return is_found unless File.exist? file File.open(file).each do |l| is_found = true if l =~ /#{search}/ end is_found end |
.mkdir(path, perm = 0755) ⇒ Object
13 14 15 16 17 |
# File 'lib/nito.rb', line 13 def mkdir(path, perm = 0755) return if Dir.exist? path FileUtils.mkdir_p path, mode: perm end |
.mount(*args) ⇒ Object
Mount, accept *args, the last argument should be the destination e.g: mount ‘–types proc’, ‘/proc’, ‘/mnt/getch/proc’
41 42 43 44 45 46 |
# File 'lib/nito.rb', line 41 def mount(*args) return if mount? args.last mkdir args.last Getch::Command.new('mount', args.join(' ')) end |
.mount?(dir) ⇒ Boolean
48 49 50 51 52 53 54 |
# File 'lib/nito.rb', line 48 def mount?(dir) res = false File.open('/proc/mounts').each do |l| res = true if l =~ /#{dir}/ end res end |
.rm(file) ⇒ Object
29 30 31 |
# File 'lib/nito.rb', line 29 def rm(file) File.exist?(file) && File.delete(file) end |
.search_proc_swaps(path) ⇒ Object
88 89 90 91 92 93 94 95 96 |
# File 'lib/nito.rb', line 88 def search_proc_swaps(path) found = nil File.open('/proc/swaps').each do |l| if l =~ /#{path}/ found = l.split(' ') end end found end |
.sed(file, regex, change) ⇒ Object
Like sed -i /old:new/ file
76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/nito.rb', line 76 def sed(file, regex, change) tmp_file = Tempfile.new File.open(file).each do |l| if l.match(regex) echo_a tmp_file, change else File.write tmp_file, l, mode: 'a' end end cp tmp_file, file end |
.sh(*args) ⇒ Object
117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
# File 'lib/nito.rb', line 117 def sh(*args) log = Log.new Open3.popen3 args.join(' ') do |_, stdout, stderr, wait_thr| if wait_thr.value.success? log.info_res 'Ok' return stdout.read.chomp end puts log.dbg args.join(' ') + "\nEXIT:#{wait_thr.value}" log.dbg "STDERR:#{stderr.read}" log.dbg "STDOUT:#{stdout.read}" log.fatal 'Die' end end |
.swapoff(dev) ⇒ Object
98 99 100 101 102 103 104 105 |
# File 'lib/nito.rb', line 98 def swapoff(dev) return unless grep? '/proc/swaps', dev found = search_proc_swaps(dev) found ? Getch::Command.new('swapoff', found[0]) : return end |
.swapoff_dm(name) ⇒ Object
107 108 109 110 111 112 113 114 115 |
# File 'lib/nito.rb', line 107 def swapoff_dm(name) dm = Getch::Helpers.get_dm name dm || return found = search_proc_swaps(dm) found ? Getch::Command.new('swapoff', found[0]) : return end |
.touch(file) ⇒ Object
create a void file
71 72 73 |
# File 'lib/nito.rb', line 71 def touch(file) File.write(file, '') unless File.exist? file end |