getch 0.1.9 → 0.3.3

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 (164) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +132 -0
  4. data/LICENSE +10 -0
  5. data/README.md +35 -29
  6. data/bin/getch +8 -6
  7. data/getch.gemspec +31 -0
  8. data/lib/clean.rb +149 -0
  9. data/lib/cryptsetup.rb +132 -0
  10. data/lib/devs.rb +199 -0
  11. data/lib/dracut/encrypt.rb +36 -0
  12. data/lib/dracut/hybrid.rb +15 -0
  13. data/lib/dracut/lvm.rb +14 -0
  14. data/lib/dracut/minimal.rb +11 -0
  15. data/lib/dracut/root.rb +45 -0
  16. data/lib/dracut/zfs.rb +35 -0
  17. data/lib/dracut.rb +11 -0
  18. data/lib/fstab/encrypt.rb +44 -0
  19. data/lib/fstab/hybrid.rb +34 -0
  20. data/lib/fstab/lvm.rb +25 -0
  21. data/lib/fstab/minimal.rb +6 -0
  22. data/lib/fstab/root.rb +93 -0
  23. data/lib/fstab/zfs.rb +23 -0
  24. data/lib/fstab.rb +11 -0
  25. data/lib/getch/assembly.rb +150 -0
  26. data/lib/getch/command.rb +88 -128
  27. data/lib/getch/config/account.rb +39 -0
  28. data/lib/getch/config/dhcp.rb +104 -0
  29. data/lib/getch/config/grub.rb +42 -0
  30. data/lib/getch/config/iwd.rb +60 -0
  31. data/lib/getch/config/keymap.rb +78 -0
  32. data/lib/getch/config/locale.rb +96 -0
  33. data/lib/getch/config/portage.rb +90 -0
  34. data/lib/getch/config/pre_network.rb +37 -0
  35. data/lib/getch/config/timezone.rb +52 -0
  36. data/lib/getch/config/void.rb +0 -36
  37. data/lib/getch/config.rb +16 -37
  38. data/lib/getch/device.rb +67 -0
  39. data/lib/getch/filesystem/ext4/encrypt/config.rb +9 -71
  40. data/lib/getch/filesystem/ext4/encrypt/deps.rb +15 -25
  41. data/lib/getch/filesystem/ext4/encrypt/device.rb +11 -5
  42. data/lib/getch/filesystem/ext4/encrypt/format.rb +6 -15
  43. data/lib/getch/filesystem/ext4/encrypt/mount.rb +7 -11
  44. data/lib/getch/filesystem/ext4/encrypt/partition.rb +10 -76
  45. data/lib/getch/filesystem/ext4/encrypt/void.rb +0 -38
  46. data/lib/getch/filesystem/ext4/encrypt.rb +2 -1
  47. data/lib/getch/filesystem/ext4/hybrid/config.rb +27 -0
  48. data/lib/getch/filesystem/ext4/hybrid/deps.rb +55 -0
  49. data/lib/getch/filesystem/ext4/hybrid/device.rb +24 -0
  50. data/lib/getch/filesystem/ext4/hybrid/format.rb +23 -0
  51. data/lib/getch/filesystem/ext4/hybrid/mount.rb +21 -0
  52. data/lib/getch/filesystem/ext4/hybrid/partition.rb +27 -0
  53. data/lib/getch/filesystem/{lvm/encrypt → ext4/hybrid}/void.rb +0 -39
  54. data/lib/getch/filesystem/ext4/hybrid.rb +19 -0
  55. data/lib/getch/filesystem/ext4/lvm/config.rb +25 -0
  56. data/lib/getch/filesystem/ext4/lvm/deps.rb +56 -0
  57. data/lib/getch/filesystem/ext4/lvm/device.rb +28 -0
  58. data/lib/getch/filesystem/ext4/lvm/format.rb +21 -0
  59. data/lib/getch/filesystem/ext4/lvm/mount.rb +21 -0
  60. data/lib/getch/filesystem/ext4/lvm/partition.rb +28 -0
  61. data/lib/getch/filesystem/{lvm.rb → ext4/lvm.rb} +6 -4
  62. data/lib/getch/filesystem/ext4/minimal/config.rb +25 -0
  63. data/lib/getch/filesystem/ext4/{device.rb → minimal/deps.rb} +3 -1
  64. data/lib/getch/filesystem/ext4/minimal/device.rb +22 -0
  65. data/lib/getch/filesystem/ext4/minimal/format.rb +23 -0
  66. data/lib/getch/filesystem/ext4/minimal/mount.rb +21 -0
  67. data/lib/getch/filesystem/ext4/minimal/partition.rb +28 -0
  68. data/lib/getch/filesystem/ext4/minimal.rb +19 -0
  69. data/lib/getch/filesystem/ext4.rb +7 -7
  70. data/lib/getch/filesystem/zfs/encrypt/config.rb +10 -39
  71. data/lib/getch/filesystem/zfs/encrypt/deps.rb +4 -55
  72. data/lib/getch/filesystem/zfs/encrypt/device.rb +7 -51
  73. data/lib/getch/filesystem/zfs/encrypt/format.rb +6 -90
  74. data/lib/getch/filesystem/zfs/encrypt/mount.rb +16 -35
  75. data/lib/getch/filesystem/zfs/encrypt/partition.rb +6 -54
  76. data/lib/getch/filesystem/zfs/encrypt.rb +2 -1
  77. data/lib/getch/filesystem/zfs/minimal/config.rb +37 -0
  78. data/lib/getch/filesystem/zfs/minimal/deps.rb +126 -0
  79. data/lib/getch/filesystem/zfs/minimal/device.rb +24 -0
  80. data/lib/getch/filesystem/zfs/minimal/format.rb +23 -0
  81. data/lib/getch/filesystem/zfs/minimal/mount.rb +23 -0
  82. data/lib/getch/filesystem/zfs/minimal/partition.rb +23 -0
  83. data/lib/getch/filesystem/zfs/minimal.rb +19 -0
  84. data/lib/getch/filesystem/zfs.rb +1 -7
  85. data/lib/getch/filesystem.rb +0 -6
  86. data/lib/getch/gentoo/bootloader.rb +23 -44
  87. data/lib/getch/gentoo/finalize.rb +25 -0
  88. data/lib/getch/gentoo/post_config.rb +75 -0
  89. data/lib/getch/gentoo/pre_config.rb +37 -0
  90. data/lib/getch/gentoo/services.rb +18 -0
  91. data/lib/getch/gentoo/sources.rb +39 -33
  92. data/lib/getch/gentoo/tarball.rb +91 -0
  93. data/lib/getch/gentoo/terraform.rb +34 -0
  94. data/lib/getch/gentoo/update.rb +54 -0
  95. data/lib/getch/gentoo/use.rb +9 -6
  96. data/lib/getch/gentoo/use_flag.rb +17 -20
  97. data/lib/getch/gentoo.rb +9 -75
  98. data/lib/getch/guard.rb +3 -3
  99. data/lib/getch/helpers.rb +63 -115
  100. data/lib/getch/log.rb +87 -25
  101. data/lib/getch/options.rb +41 -11
  102. data/lib/getch/states.rb +28 -8
  103. data/lib/getch/tree.rb +56 -0
  104. data/lib/getch/version.rb +1 -1
  105. data/lib/getch/void/bootloader.rb +18 -0
  106. data/lib/getch/void/finalize.rb +31 -0
  107. data/lib/getch/void/post_config.rb +19 -0
  108. data/lib/getch/void/pre_config.rb +18 -0
  109. data/lib/getch/void/services.rb +18 -0
  110. data/lib/getch/void/{stage.rb → tarball.rb} +34 -14
  111. data/lib/getch/void/terraform.rb +28 -0
  112. data/lib/getch/void/update.rb +33 -0
  113. data/lib/getch/void.rb +9 -59
  114. data/lib/getch.rb +58 -90
  115. data/lib/luks.rb +239 -0
  116. data/lib/lvm2.rb +112 -0
  117. data/lib/mkfs/zfs.rb +167 -0
  118. data/lib/mkfs.rb +144 -0
  119. data/lib/mountfs.rb +154 -0
  120. data/lib/nito.rb +131 -0
  121. data/lib/sgdisk.rb +160 -0
  122. data.tar.gz.sig +0 -0
  123. metadata +113 -74
  124. metadata.gz.sig +0 -0
  125. data/lib/getch/config/gentoo.rb +0 -58
  126. data/lib/getch/filesystem/clean.rb +0 -58
  127. data/lib/getch/filesystem/device.rb +0 -63
  128. data/lib/getch/filesystem/ext4/config.rb +0 -62
  129. data/lib/getch/filesystem/ext4/deps.rb +0 -24
  130. data/lib/getch/filesystem/ext4/format.rb +0 -31
  131. data/lib/getch/filesystem/ext4/mount.rb +0 -26
  132. data/lib/getch/filesystem/ext4/partition.rb +0 -55
  133. data/lib/getch/filesystem/ext4/void.rb +0 -44
  134. data/lib/getch/filesystem/lvm/config.rb +0 -44
  135. data/lib/getch/filesystem/lvm/deps.rb +0 -44
  136. data/lib/getch/filesystem/lvm/device.rb +0 -45
  137. data/lib/getch/filesystem/lvm/encrypt/config.rb +0 -74
  138. data/lib/getch/filesystem/lvm/encrypt/deps.rb +0 -49
  139. data/lib/getch/filesystem/lvm/encrypt/device.rb +0 -48
  140. data/lib/getch/filesystem/lvm/encrypt/format.rb +0 -35
  141. data/lib/getch/filesystem/lvm/encrypt/mount.rb +0 -27
  142. data/lib/getch/filesystem/lvm/encrypt/partition.rb +0 -84
  143. data/lib/getch/filesystem/lvm/encrypt.rb +0 -18
  144. data/lib/getch/filesystem/lvm/format.rb +0 -32
  145. data/lib/getch/filesystem/lvm/mount.rb +0 -26
  146. data/lib/getch/filesystem/lvm/partition.rb +0 -72
  147. data/lib/getch/filesystem/lvm/void.rb +0 -46
  148. data/lib/getch/filesystem/mount.rb +0 -63
  149. data/lib/getch/filesystem/partition.rb +0 -85
  150. data/lib/getch/filesystem/zfs/config.rb +0 -43
  151. data/lib/getch/filesystem/zfs/deps.rb +0 -67
  152. data/lib/getch/filesystem/zfs/device.rb +0 -66
  153. data/lib/getch/filesystem/zfs/encrypt/void.rb +0 -97
  154. data/lib/getch/filesystem/zfs/format.rb +0 -117
  155. data/lib/getch/filesystem/zfs/mount.rb +0 -47
  156. data/lib/getch/filesystem/zfs/partition.rb +0 -69
  157. data/lib/getch/filesystem/zfs/void.rb +0 -81
  158. data/lib/getch/gentoo/boot.rb +0 -64
  159. data/lib/getch/gentoo/chroot.rb +0 -75
  160. data/lib/getch/gentoo/config.rb +0 -167
  161. data/lib/getch/gentoo/stage.rb +0 -73
  162. data/lib/getch/void/boot.rb +0 -84
  163. data/lib/getch/void/chroot.rb +0 -56
  164. data/lib/getch/void/config.rb +0 -90
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Getch
4
+ module Void
5
+ class PreConfig
6
+ def initialize
7
+ x
8
+ end
9
+
10
+ private
11
+
12
+ def x
13
+ Getch::Config::Locale.new
14
+ Getch::Config::PreNetwork.new
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Getch
4
+ module Void
5
+ class Services
6
+ def initialize
7
+ x
8
+ end
9
+
10
+ protected
11
+
12
+ def x
13
+ Config::Iwd.new
14
+ Config::Dhcp.new
15
+ end
16
+ end
17
+ end
18
+ end
@@ -5,59 +5,79 @@ require 'open3'
5
5
 
6
6
  module Getch
7
7
  module Void
8
- class RootFS
8
+ class Tarball
9
9
  def initialize
10
+ @log = Log.new
10
11
  @url = 'https://alpha.de.repo.voidlinux.org/live/current'
11
12
  @file = 'sha256sum.txt'
12
13
  @xbps = false
13
- Dir.chdir(MOUNTPOINT)
14
+ Dir.chdir OPTIONS[:mountpoint]
15
+ end
16
+
17
+ def x
18
+ search_archive
19
+ download
20
+ checksum
21
+ install
22
+ end
23
+
24
+ protected
25
+
26
+ def tarball
27
+ OPTIONS[:musl] ?
28
+ /void-x86_64-musl-ROOTFS-[\d._]+.tar.xz/ :
29
+ /void-x86_64-ROOTFS-[\d._]+.tar.xz/
14
30
  end
15
31
 
16
32
  # Search only the glibc x86_64 for now
17
33
  def search_archive
18
34
  yurl = "#{@url}/#{@file}"
19
- puts "Open #{yurl}"
35
+ @log.info "Opening #{yurl}...\n"
20
36
  Helpers.get_file_online(yurl, @file)
21
37
  File.open(@file).each do |l|
22
- @xbps = l.tr('()', '').split(' ') if l.match(/void-x86_64-ROOTFS-[\d._]+.tar.xz/)
38
+ @xbps = l.tr('()', '').split(' ') if l.match(tarball)
23
39
  end
24
40
  end
25
41
 
26
42
  def download
27
- raise StandardError, 'No file found, retry later.' unless @xbps
43
+ @log.fatal 'No file found, retry later.' unless @xbps
28
44
  return if File.exist? @xbps[1]
29
45
 
30
- puts "Downloading #{@xbps[1]}..."
46
+ @log.info "Downloading #{@xbps[1]}..."
31
47
  Helpers.get_file_online("#{@url}/#{@xbps[1]}", @xbps[1])
48
+ @log.result_ok
32
49
  end
33
50
 
34
51
  def checksum
35
- print ' => Checking SHA256 checksum...'
52
+ @log.info 'Checking SHA256 checksum...'
36
53
  # Should contain 2 spaces...
37
54
  command = "echo #{@xbps[3]} #{@xbps[1]} | sha256sum --check"
38
55
  _, stderr, status = Open3.capture3(command)
39
56
  if status.success? then
40
- puts "\t[OK]"
41
- decompress
42
- cleaning
57
+ @log.result_ok
43
58
  return
44
59
  end
45
60
  cleaning
46
- raise "Problem with the checksum, stderr\n#{stderr}"
61
+ @log.fatal "Problem with the checksum, stderr\n#{stderr}"
62
+ end
63
+
64
+ def install
65
+ decompress
66
+ cleaning
47
67
  end
48
68
 
49
69
  private
50
70
 
51
71
  def decompress
52
- print " => Decompressing archive #{@xbps[1]}..."
72
+ @log.info "Decompressing #{@xbps[1]}..."
53
73
  cmd = "tar xpf #{@xbps[1]} --xattrs-include=\'*.*\' --numeric-owner"
54
74
  _, stderr, status = Open3.capture3(cmd)
55
75
  if status.success? then
56
- puts "\s[OK]"
76
+ @log.result_ok
57
77
  return
58
78
  end
59
79
  cleaning
60
- raise "Fail to decompress archive #{@xbps[1]} - #{stderr}."
80
+ @log.fatal "Fail to decompressing #{@xbps[1]} - #{stderr}."
61
81
  end
62
82
 
63
83
  def cleaning
@@ -0,0 +1,28 @@
1
+ module Getch
2
+ module Void
3
+ class Terraform
4
+ def initialize
5
+ x
6
+ end
7
+
8
+ protected
9
+
10
+ def x
11
+ install_pkgs
12
+ end
13
+
14
+ def install_pkgs
15
+ @pkgs = 'sudo'
16
+ @pkgs << ' vim'
17
+ @pkgs << ' iptables'
18
+ @pkgs << ' runit-iptables'
19
+ @pkgs << ' iwd'
20
+ @pkgs << ' dhcpcd'
21
+ @pkgs << ' lvm2' if OPTIONS[:fs] == 'lvm'
22
+ @pkgs << ' zfs' if OPTIONS[:fs] == 'zfs'
23
+ @pkgs << ' cryptsetup' if OPTIONS[:encrypt]
24
+ Install.new(@pkgs)
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Getch
4
+ module Void
5
+ class Update
6
+ def initialize
7
+ @log = Log.new
8
+ x
9
+ end
10
+
11
+ protected
12
+
13
+ # https://docs.voidlinux.org/installation/guides/chroot.html#install-base-system-rootfs-method-only
14
+ def x
15
+ sync
16
+ update
17
+ end
18
+
19
+ private
20
+
21
+ def sync
22
+ @log.info "Synchronize index...\n"
23
+ ChrootOutput.new '/usr/bin/xbps-install', '-Suy', 'xbps'
24
+ end
25
+
26
+ def update
27
+ ChrootOutput.new '/usr/bin/xbps-install -uy'
28
+ ChrootOutput.new '/usr/bin/xbps-install -y base-system'
29
+ ChrootOutput.new '/usr/bin/xbps-remove -y base-voidstrap'
30
+ end
31
+ end
32
+ end
33
+ end
data/lib/getch/void.rb CHANGED
@@ -1,65 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'void/stage'
4
- require_relative 'void/config'
5
- require_relative 'void/chroot'
6
- #require_relative 'void/sources'
7
- require_relative 'void/boot'
8
-
9
3
  module Getch
10
4
  module Void
11
- class Main
12
- def initialize
13
- @state = Getch::States.new
14
- end
15
-
16
- def root_fs
17
- return if STATES[:gentoo_base]
18
-
19
- xbps = Getch::Void::RootFS.new
20
- xbps.search_archive
21
- xbps.download
22
- xbps.checksum
23
- @state.stage3
24
- end
25
-
26
- def config
27
- return if STATES[:gentoo_config]
28
-
29
- config = Getch::Void::Config.new
30
- config.host
31
- config.network
32
- config.system
33
- config.locale
34
- @state.config
35
- end
36
-
37
- def chroot
38
- return if STATES[:gentoo_kernel]
39
-
40
- chroot = Getch::Void::Chroot.new
41
- chroot.update
42
- chroot.fs
43
- chroot.extras
44
- chroot.install_pkgs
45
- end
46
-
47
- def kernel
48
- return if STATES[:gentoo_kernel]
49
-
50
- Getch::Void::Sources.new
51
- @state.kernel
52
- end
53
-
54
- def boot
55
- boot = Getch::Void::Boot.new
56
- boot.new_user
57
- boot.fstab
58
- boot.dracut
59
- boot.grub
60
- boot.initramfs
61
- boot.finish
62
- end
63
- end
64
5
  end
65
6
  end
7
+
8
+ require_relative 'void/tarball'
9
+ require_relative 'void/pre_config'
10
+ require_relative 'void/update'
11
+ require_relative 'void/post_config'
12
+ require_relative 'void/terraform'
13
+ require_relative 'void/services'
14
+ require_relative 'void/bootloader'
15
+ require_relative 'void/finalize'
data/lib/getch.rb CHANGED
@@ -5,7 +5,10 @@ require_relative 'getch/options'
5
5
  require_relative 'getch/states'
6
6
  require_relative 'getch/gentoo'
7
7
  require_relative 'getch/void'
8
+ require_relative 'getch/device'
8
9
  require_relative 'getch/filesystem'
10
+ require_relative 'getch/tree'
11
+ require_relative 'getch/assembly'
9
12
  require_relative 'getch/command'
10
13
  require_relative 'getch/log'
11
14
  require_relative 'getch/config'
@@ -15,72 +18,65 @@ require_relative 'getch/version'
15
18
  module Getch
16
19
 
17
20
  OPTIONS = {
18
- :language => 'en_US',
19
- :zoneinfo => 'US/Eastern',
20
- :keymap => 'us',
21
- :disk => false,
22
- :fs => 'ext4',
23
- :username => false,
24
- :os => 'gentoo',
25
- :boot_disk => false,
26
- :cache_disk => false,
27
- :home_disk => false,
28
- :encrypt => false,
29
- :verbose => false
21
+ boot_disk: false,
22
+ disk: false,
23
+ cache_disk: false,
24
+ encrypt: false,
25
+ fs: 'ext4',
26
+ home_disk: false,
27
+ keymap: 'us',
28
+ language: 'en_US',
29
+ luks_name: 'luks',
30
+ lvm: false,
31
+ mountpoint: '/mnt/getch',
32
+ musl: false,
33
+ os: 'gentoo',
34
+ timezone: 'UTC',
35
+ username: false,
36
+ verbose: false,
37
+ vg_name: 'vg4',
38
+ zfs_name: 'pool'
30
39
  }
31
40
 
32
41
  STATES = {
33
- :partition => false,
34
- :format => false,
35
- :mount => false,
36
- :gentoo_base => false,
37
- :gentoo_config => false,
38
- :gentoo_update => false,
39
- :gentoo_bootloader => false,
40
- :gentoo_kernel => false
42
+ partition: false,
43
+ format: false,
44
+ mount: false,
45
+ tarball: false,
46
+ pre_config: false,
47
+ update: false,
48
+ post_config: false,
49
+ terraform: false,
50
+ bootloader: false,
51
+ services: false,
52
+ finalize: false,
41
53
  }
42
54
 
43
- MOUNTPOINT = '/mnt/gentoo'
44
-
45
- DEFAULT_FS = {
46
- true => {
47
- ext4: FileSystem::Ext4::Encrypt,
48
- lvm: FileSystem::Lvm::Encrypt,
49
- zfs: FileSystem::Zfs::Encrypt
50
- },
51
- false => {
52
- ext4: FileSystem::Ext4,
53
- lvm: FileSystem::Lvm,
54
- zfs: FileSystem::Zfs,
55
- }
56
- }.freeze
57
-
58
- def self.select_fs
59
- encrypt = OPTIONS[:encrypt]
60
- fs_sym = OPTIONS[:fs].to_sym
61
- DEFAULT_FS[encrypt][fs_sym]
62
- end
55
+ MOUNTPOINT = '/mnt/getch'
56
+ DEVS = {}
63
57
 
64
58
  class Main
65
59
  def initialize(argv)
66
60
  argv[:cli]
67
- @class_fs = Getch::select_fs
68
61
  @log = Log.new
69
- Getch::States.new # Update States
62
+ @assembly = Assembly.new
70
63
  end
71
64
 
72
65
  def resume
73
- raise 'No disk, use at least getch with -d DISK' unless OPTIONS[:disk]
66
+ STATES[:partition] && return
67
+
68
+ @log.fatal 'No disk, use at least getch with -d DISK' unless OPTIONS[:disk]
74
69
 
75
70
  puts "\nBuild " + OPTIONS[:os].capitalize + " Linux with the following args:\n"
76
71
  puts
77
72
  puts "\tLang: #{OPTIONS[:language]}"
78
- puts "\tZoneinfo: #{OPTIONS[:zoneinfo]}"
73
+ puts "\tTimezone: #{OPTIONS[:timezone]}"
79
74
  puts "\tKeymap: #{OPTIONS[:keymap]}"
80
75
  puts "\tDisk: #{OPTIONS[:disk]}"
81
76
  puts "\tFilesystem: #{OPTIONS[:fs]}"
82
77
  puts "\tUsername: #{OPTIONS[:username]}"
83
78
  puts "\tEncrypt: #{OPTIONS[:encrypt]}"
79
+ puts "\tMusl: #{OPTIONS[:musl]}"
84
80
  puts
85
81
  puts "\tseparate-boot disk: #{OPTIONS[:boot_disk]}"
86
82
  puts "\tseparate-cache disk: #{OPTIONS[:cache_disk]}"
@@ -89,67 +85,39 @@ module Getch
89
85
  print 'Continue? (y,N) '
90
86
  case gets.chomp
91
87
  when /^y|^Y/
92
- return
93
88
  else
94
89
  exit
95
90
  end
96
91
  end
97
92
 
98
- def partition
99
- return if STATES[:partition]
100
-
101
- puts
102
- print "Partition and format disk #{OPTIONS[:disk]}, this will erase all data, continue? (y,N) "
103
- case gets.chomp
104
- when /^y|^Y/
105
- @log.info('Partition start')
106
- @class_fs::Partition.new
107
- else
108
- exit
109
- end
93
+ def prepare_disk
94
+ @assembly.clean
95
+ @assembly.partition
96
+ @assembly.format
97
+ @assembly.mount
110
98
  end
111
99
 
112
- def format
113
- return if STATES[:format]
114
-
115
- @class_fs::Format.new
100
+ def install_system
101
+ @assembly.tarball
102
+ @assembly.pre_config
103
+ @assembly.update
104
+ @assembly.post_config
116
105
  end
117
106
 
118
- def mount
119
- return if STATES[:mount]
120
-
121
- @class_fs::Mount.new.run
107
+ def terraform
108
+ @assembly.terraform
109
+ @assembly.services
122
110
  end
123
111
 
124
- def install
125
- if OPTIONS[:os] == 'gentoo'
126
- install_gentoo
127
- elsif OPTIONS[:os] == 'void'
128
- install_void
129
- else
130
- puts "Options #{OPTIONS[:os]} not supported...."
131
- exit 1
132
- end
112
+ def bootloader
113
+ @assembly.luks_keys
114
+ @assembly.bootloader
133
115
  end
134
116
 
135
- def install_gentoo
136
- gentoo = Getch::Gentoo::Main.new
137
- gentoo.stage3
138
- gentoo.config
139
- gentoo.chroot
140
- gentoo.bootloader
141
- gentoo.kernel
142
- gentoo.boot
117
+ def finalize
118
+ @assembly.finalize
143
119
  end
144
120
 
145
- def install_void
146
- void = Getch::Void::Main.new
147
- void.root_fs
148
- void.config
149
- void.chroot
150
- void.boot
151
- end
152
-
153
121
  def configure
154
122
  config = Getch::Config::Main.new
155
123
  config.ethernet