getch 0.1.0 → 0.1.1

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.
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