getch 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/CHANGELOG.md +9 -0
  5. data/README.md +18 -4
  6. data/lib/getch.rb +14 -7
  7. data/lib/getch/command.rb +18 -4
  8. data/lib/getch/filesystem.rb +5 -0
  9. data/lib/getch/filesystem/clean.rb +51 -0
  10. data/lib/getch/filesystem/device.rb +55 -0
  11. data/lib/getch/filesystem/ext4/config.rb +8 -9
  12. data/lib/getch/filesystem/ext4/device.rb +2 -7
  13. data/lib/getch/filesystem/ext4/encrypt/config.rb +9 -9
  14. data/lib/getch/filesystem/ext4/encrypt/deps.rb +1 -1
  15. data/lib/getch/filesystem/ext4/encrypt/device.rb +3 -8
  16. data/lib/getch/filesystem/ext4/encrypt/format.rb +3 -5
  17. data/lib/getch/filesystem/ext4/encrypt/mount.rb +6 -43
  18. data/lib/getch/filesystem/ext4/encrypt/partition.rb +19 -38
  19. data/lib/getch/filesystem/ext4/format.rb +3 -5
  20. data/lib/getch/filesystem/ext4/mount.rb +7 -46
  21. data/lib/getch/filesystem/ext4/partition.rb +16 -39
  22. data/lib/getch/filesystem/lvm/config.rb +5 -5
  23. data/lib/getch/filesystem/lvm/deps.rb +3 -2
  24. data/lib/getch/filesystem/lvm/device.rb +23 -7
  25. data/lib/getch/filesystem/lvm/encrypt/config.rb +3 -3
  26. data/lib/getch/filesystem/lvm/encrypt/deps.rb +1 -1
  27. data/lib/getch/filesystem/lvm/encrypt/device.rb +23 -7
  28. data/lib/getch/filesystem/lvm/encrypt/format.rb +3 -3
  29. data/lib/getch/filesystem/lvm/encrypt/mount.rb +7 -46
  30. data/lib/getch/filesystem/lvm/encrypt/partition.rb +19 -31
  31. data/lib/getch/filesystem/lvm/format.rb +11 -7
  32. data/lib/getch/filesystem/lvm/mount.rb +7 -46
  33. data/lib/getch/filesystem/lvm/partition.rb +19 -31
  34. data/lib/getch/filesystem/mount.rb +56 -0
  35. data/lib/getch/filesystem/partition.rb +77 -0
  36. data/lib/getch/filesystem/zfs/config.rb +4 -5
  37. data/lib/getch/filesystem/zfs/deps.rb +3 -6
  38. data/lib/getch/filesystem/zfs/device.rb +30 -9
  39. data/lib/getch/filesystem/zfs/encrypt/config.rb +7 -7
  40. data/lib/getch/filesystem/zfs/encrypt/deps.rb +2 -6
  41. data/lib/getch/filesystem/zfs/encrypt/device.rb +30 -9
  42. data/lib/getch/filesystem/zfs/encrypt/format.rb +84 -1
  43. data/lib/getch/filesystem/zfs/encrypt/mount.rb +4 -20
  44. data/lib/getch/filesystem/zfs/encrypt/partition.rb +15 -111
  45. data/lib/getch/filesystem/zfs/format.rb +84 -2
  46. data/lib/getch/filesystem/zfs/mount.rb +5 -24
  47. data/lib/getch/filesystem/zfs/partition.rb +15 -108
  48. data/lib/getch/gentoo.rb +2 -1
  49. data/lib/getch/gentoo/boot.rb +2 -2
  50. data/lib/getch/gentoo/chroot.rb +10 -24
  51. data/lib/getch/gentoo/config.rb +22 -2
  52. data/lib/getch/gentoo/sources.rb +11 -11
  53. data/lib/getch/helpers.rb +13 -0
  54. data/lib/getch/options.rb +20 -5
  55. data/lib/getch/version.rb +1 -1
  56. metadata +6 -2
  57. metadata.gz.sig +0 -0
@@ -15,7 +15,7 @@ module Getch
15
15
 
16
16
  def build_kspp
17
17
  puts "Adding KSPP to the kernel source"
18
- garden("-b -a systemd")
18
+ bask("-b -a systemd")
19
19
  end
20
20
 
21
21
  def make
@@ -26,8 +26,8 @@ module Getch
26
26
  end
27
27
  end
28
28
 
29
- def init_config
30
- Getch::Make.new("make localyesconfig").run!
29
+ def localmodconfig
30
+ Getch::Make.new("make localmodconfig").run!
31
31
  end
32
32
 
33
33
  private
@@ -43,37 +43,37 @@ module Getch
43
43
  def virtualbox_guest
44
44
  systemd=`systemd-detect-virt`.chomp
45
45
  return if ! ismatch?('vmwgfx') || systemd.match(/none/)
46
- garden("-a virtualbox-guest")
46
+ bask("-a virtualbox-guest")
47
47
  Getch::Emerge.new("app-emulation/virtualbox-guest-additions").pkg!
48
48
  end
49
49
 
50
50
  def qemu_guest
51
- garden("-a kvm-guest") if ismatch?('virtio')
52
- garden("-a kvm") if ismatch?('kvm')
51
+ bask("-a kvm-host") if ismatch?('kvm')
52
+ bask("-a kvm-guest") if ismatch?('virtio')
53
53
  end
54
54
 
55
55
  def ismatch?(arg)
56
56
  @lsmod.match?(/#{arg}/)
57
57
  end
58
58
 
59
- def garden(cmd)
60
- Getch::Garden.new(cmd).run!
59
+ def bask(cmd)
60
+ Getch::Bask.new(cmd).run!
61
61
  end
62
62
 
63
63
  def install_wifi
64
64
  return if ! ismatch?('cfg80211')
65
- garden("-a wifi")
65
+ bask("-a wifi")
66
66
  wifi_drivers
67
67
  Getch::Emerge.new("net-wireless/iw wpa_supplicant net-wireless/iwd").pkg!
68
68
  end
69
69
 
70
70
  def install_audio
71
71
  return if ! ismatch?('snd_pcm')
72
- garden("-a sound")
72
+ bask("-a sound")
73
73
  end
74
74
 
75
75
  def wifi_drivers
76
- garden("-a ath9k-driver") if ismatch?('ath9k')
76
+ bask("-a ath9k-driver") if ismatch?('ath9k')
77
77
  end
78
78
  end
79
79
  end
@@ -55,4 +55,17 @@ module Helpers
55
55
  raise "Error with #{cmd}"
56
56
  end
57
57
  end
58
+
59
+ def self.partuuid(dev)
60
+ `lsblk -o PARTUUID #{dev}`.match(/[\w]+-[\w]+-[\w]+-[\w]+-[\w]+/)
61
+ end
62
+
63
+ def self.uuid(dev)
64
+ `lsblk -do UUID #{dev}`.match(/[\w]+-[\w]+-[\w]+-[\w]+-[\w]+/)
65
+ end
66
+
67
+ # Used with ZFS for the pool name
68
+ def self.pool_id(dev)
69
+ `lsblk -o PARTUUID #{dev}`.delete("\n").delete("PARTUUID").match(/[\w]{5}/)
70
+ end
58
71
  end
@@ -2,7 +2,7 @@ require 'optparse'
2
2
 
3
3
  module Getch
4
4
  class Options
5
- attr_reader :language, :zoneinfo, :keymap, :disk, :fs, :username, :encrypt, :verbose
5
+ attr_reader :language, :zoneinfo, :keymap, :disk, :fs, :username, :boot_disk, :cache_disk, :home_disk, :encrypt, :verbose
6
6
 
7
7
  def initialize(argv)
8
8
  @language = DEFAULT_OPTIONS[:language]
@@ -11,6 +11,9 @@ module Getch
11
11
  @disk = DEFAULT_OPTIONS[:disk]
12
12
  @fs = DEFAULT_OPTIONS[:fs]
13
13
  @username = DEFAULT_OPTIONS[:username]
14
+ @boot_disk = DEFAULT_OPTIONS[:boot_disk]
15
+ @cache_disk = DEFAULT_OPTIONS[:cache_disk]
16
+ @home_disk = DEFAULT_OPTIONS[:home_disk]
14
17
  @encrypt = DEFAULT_OPTIONS[:encrypt]
15
18
  @verbose = DEFAULT_OPTIONS[:verbose]
16
19
  parse(argv)
@@ -29,17 +32,29 @@ module Getch
29
32
  opts.on("-k", "--keymap KEY", "Default is us") do |key|
30
33
  @keymap = key
31
34
  end
32
- opts.on("-d", "--disk DISK", "Disk where install Gentoo (sda,sdb)") do |disk|
35
+ opts.on("-d", "--disk DISK", "Disk where install Gentoo (sda,sdb), default use #{@disk}") do |disk|
33
36
  @disk = disk
34
37
  end
35
- opts.on("-f", "--format FS", "Can be ext4, lvm. Default use ext4") do |fs|
38
+ opts.on("-f", "--format FS", "Can be ext4, lvm or zfs. Default use ext4") do |fs|
36
39
  @fs = fs
37
40
  DEFAULT_OPTIONS[:fs] = fs # dont known why, but it should be enforce
38
41
  end
39
- opts.on("-u", "--username USERNAME", "Initialize /home/username") do |user|
42
+ opts.on("-u", "--username USERNAME", "Create a new user /home/USERNAME with password.") do |user|
40
43
  @username = user
41
44
  end
42
- opts.on("--encrypt", "Encrypt your system with Luks2.") do
45
+ opts.on("--separate-boot DISK", "Disk for the boot/efi partition, default use #{@disk}") do |boot|
46
+ @boot_disk = boot
47
+ DEFAULT_OPTIONS[:boot_disk] = boot
48
+ end
49
+ opts.on("--separate-cache DISK", "Disk for the swap partition, add ZIL/L2ARC for ZFS when set, default use #{@disk}") do |swap|
50
+ @cache_disk = swap
51
+ DEFAULT_OPTIONS[:cache_disk] = swap
52
+ end
53
+ opts.on("--separate-home DISK", "Disk for the /home partition, default is nil") do |home|
54
+ @home_disk = home
55
+ DEFAULT_OPTIONS[:home_disk] = home
56
+ end
57
+ opts.on("--encrypt", "Encrypt your system.") do
43
58
  @encrypt = true
44
59
  end
45
60
  opts.on("--verbose", "Write more messages to the standard output.") do
@@ -1,3 +1,3 @@
1
1
  module Getch
2
- VERSION = '0.1.0'.freeze
2
+ VERSION = '0.1.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: getch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - szorfein
@@ -35,7 +35,7 @@ cert_chain:
35
35
  J/zT/q2Ac7BWpSLbv6p9lChBiEnD9j24x463LR5QQjDNS5SsjzRQfFuprsa9Nqf2
36
36
  Tw==
37
37
  -----END CERTIFICATE-----
38
- date: 2020-10-15 00:00:00.000000000 Z
38
+ date: 2020-11-01 00:00:00.000000000 Z
39
39
  dependencies: []
40
40
  description:
41
41
  email:
@@ -55,6 +55,8 @@ files:
55
55
  - lib/getch.rb
56
56
  - lib/getch/command.rb
57
57
  - lib/getch/filesystem.rb
58
+ - lib/getch/filesystem/clean.rb
59
+ - lib/getch/filesystem/device.rb
58
60
  - lib/getch/filesystem/ext4.rb
59
61
  - lib/getch/filesystem/ext4/config.rb
60
62
  - lib/getch/filesystem/ext4/deps.rb
@@ -83,6 +85,8 @@ files:
83
85
  - lib/getch/filesystem/lvm/format.rb
84
86
  - lib/getch/filesystem/lvm/mount.rb
85
87
  - lib/getch/filesystem/lvm/partition.rb
88
+ - lib/getch/filesystem/mount.rb
89
+ - lib/getch/filesystem/partition.rb
86
90
  - lib/getch/filesystem/zfs.rb
87
91
  - lib/getch/filesystem/zfs/config.rb
88
92
  - lib/getch/filesystem/zfs/deps.rb
metadata.gz.sig CHANGED
Binary file