getch 0.1.2 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/README.md +66 -32
  4. data/assets/network-stack.conf +63 -0
  5. data/assets/system.conf +38 -0
  6. data/bin/getch +12 -4
  7. data/lib/cmdline.rb +128 -0
  8. data/lib/getch/command.rb +32 -22
  9. data/lib/getch/config/gentoo.rb +58 -0
  10. data/lib/getch/config/void.rb +47 -0
  11. data/lib/getch/config.rb +45 -0
  12. data/lib/getch/filesystem/clean.rb +22 -15
  13. data/lib/getch/filesystem/device.rb +8 -6
  14. data/lib/getch/filesystem/ext4/config.rb +8 -4
  15. data/lib/getch/filesystem/ext4/deps.rb +3 -1
  16. data/lib/getch/filesystem/ext4/device.rb +2 -3
  17. data/lib/getch/filesystem/ext4/encrypt/config.rb +15 -11
  18. data/lib/getch/filesystem/ext4/encrypt/deps.rb +5 -10
  19. data/lib/getch/filesystem/ext4/encrypt/device.rb +5 -3
  20. data/lib/getch/filesystem/ext4/encrypt/format.rb +4 -2
  21. data/lib/getch/filesystem/ext4/encrypt/mount.rb +3 -3
  22. data/lib/getch/filesystem/ext4/encrypt/partition.rb +29 -35
  23. data/lib/getch/filesystem/ext4/encrypt/void.rb +101 -0
  24. data/lib/getch/filesystem/ext4/encrypt.rb +3 -0
  25. data/lib/getch/filesystem/ext4/format.rb +4 -1
  26. data/lib/getch/filesystem/ext4/mount.rb +3 -0
  27. data/lib/getch/filesystem/ext4/partition.rb +11 -8
  28. data/lib/getch/filesystem/ext4/void.rb +44 -0
  29. data/lib/getch/filesystem/ext4.rb +3 -0
  30. data/lib/getch/filesystem/lvm/config.rb +10 -29
  31. data/lib/getch/filesystem/lvm/deps.rb +7 -11
  32. data/lib/getch/filesystem/lvm/device.rb +5 -3
  33. data/lib/getch/filesystem/lvm/encrypt/config.rb +17 -17
  34. data/lib/getch/filesystem/lvm/encrypt/deps.rb +8 -12
  35. data/lib/getch/filesystem/lvm/encrypt/device.rb +7 -5
  36. data/lib/getch/filesystem/lvm/encrypt/format.rb +5 -2
  37. data/lib/getch/filesystem/lvm/encrypt/mount.rb +4 -2
  38. data/lib/getch/filesystem/lvm/encrypt/partition.rb +17 -13
  39. data/lib/getch/filesystem/lvm/encrypt/void.rb +101 -0
  40. data/lib/getch/filesystem/lvm/encrypt.rb +3 -0
  41. data/lib/getch/filesystem/lvm/format.rb +4 -1
  42. data/lib/getch/filesystem/lvm/mount.rb +3 -0
  43. data/lib/getch/filesystem/lvm/partition.rb +10 -7
  44. data/lib/getch/filesystem/lvm/void.rb +46 -0
  45. data/lib/getch/filesystem/lvm.rb +3 -0
  46. data/lib/getch/filesystem/mount.rb +19 -12
  47. data/lib/getch/filesystem/partition.rb +19 -11
  48. data/lib/getch/filesystem/zfs/config.rb +10 -24
  49. data/lib/getch/filesystem/zfs/deps.rb +28 -58
  50. data/lib/getch/filesystem/zfs/device.rb +9 -1
  51. data/lib/getch/filesystem/zfs/encrypt/config.rb +12 -28
  52. data/lib/getch/filesystem/zfs/encrypt/deps.rb +29 -60
  53. data/lib/getch/filesystem/zfs/encrypt/device.rb +9 -1
  54. data/lib/getch/filesystem/zfs/encrypt/format.rb +24 -22
  55. data/lib/getch/filesystem/zfs/encrypt/mount.rb +15 -14
  56. data/lib/getch/filesystem/zfs/encrypt/partition.rb +24 -18
  57. data/lib/getch/filesystem/zfs/encrypt/void.rb +97 -0
  58. data/lib/getch/filesystem/zfs/encrypt.rb +3 -0
  59. data/lib/getch/filesystem/zfs/format.rb +21 -18
  60. data/lib/getch/filesystem/zfs/mount.rb +12 -13
  61. data/lib/getch/filesystem/zfs/partition.rb +20 -15
  62. data/lib/getch/filesystem/zfs/void.rb +81 -0
  63. data/lib/getch/filesystem/zfs.rb +3 -0
  64. data/lib/getch/filesystem.rb +2 -0
  65. data/lib/getch/gentoo/boot.rb +29 -67
  66. data/lib/getch/gentoo/bootloader.rb +68 -0
  67. data/lib/getch/gentoo/chroot.rb +26 -29
  68. data/lib/getch/gentoo/config.rb +69 -31
  69. data/lib/getch/gentoo/sources.rb +73 -38
  70. data/lib/getch/gentoo/stage.rb +12 -13
  71. data/lib/getch/gentoo/use.rb +39 -0
  72. data/lib/getch/gentoo/use_flag.rb +89 -0
  73. data/lib/getch/gentoo.rb +39 -21
  74. data/lib/getch/guard.rb +71 -0
  75. data/lib/getch/helpers.rb +180 -48
  76. data/lib/getch/log.rb +10 -7
  77. data/lib/getch/options.rb +50 -41
  78. data/lib/getch/states.rb +10 -3
  79. data/lib/getch/version.rb +1 -1
  80. data/lib/getch/void/boot.rb +84 -0
  81. data/lib/getch/void/chroot.rb +56 -0
  82. data/lib/getch/void/config.rb +90 -0
  83. data/lib/getch/void/stage.rb +69 -0
  84. data/lib/getch/void.rb +65 -0
  85. data/lib/getch.rb +125 -74
  86. data.tar.gz.sig +0 -0
  87. metadata +28 -10
  88. metadata.gz.sig +0 -0
  89. data/.gitignore +0 -2
  90. data/CHANGELOG.md +0 -80
  91. data/Rakefile +0 -21
  92. data/bin/setup.sh +0 -90
  93. data/getch.gemspec +0 -25
@@ -0,0 +1,90 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'fileutils'
4
+ require 'securerandom'
5
+
6
+ module Getch
7
+ module Void
8
+ class Config
9
+ include Helpers::Void
10
+
11
+ def initialize
12
+ @log = Getch::Log.new
13
+ @network_dir = "#{MOUNTPOINT}/etc"
14
+ @id = SecureRandom.hex(2)
15
+ @hostname = "void-hatch-#{@id}"
16
+ end
17
+
18
+ def host
19
+ print " => Adding hostname #{@hostname}..."
20
+ conf = "#{@network_dir}/hostname"
21
+ File.write(conf, "#{@hostname}\n", mode: 'w', chmod: 0744)
22
+ puts "\s[OK]"
23
+ end
24
+
25
+ def network
26
+ print ' => Copying /etc/resolv.conf...'
27
+ src = '/etc/resolv.conf'
28
+ dest = "#{@network_dir}/resolv.conf"
29
+ FileUtils.copy_file(src, dest)
30
+ puts "\s[Ok]"
31
+ end
32
+
33
+ def system
34
+ print ' => Updating configs system...'
35
+ control_options
36
+ rc = "#{MOUNTPOINT}/etc/rc.conf"
37
+ add_line(rc, 'HARDWARECLOCK="UTC"') unless search(rc, /^HARDWARECLOCK/)
38
+ add_line(rc, "KEYMAP=\"#{OPTIONS[:keymap]}\"") unless search(rc, /^KEYMAP/)
39
+ add_line(rc, "TIMEZONE=\"#{OPTIONS[:zoneinfo]}\"") unless search(rc, /^TIMEZONE/)
40
+ add_line(rc, "HOSTNAME=\"#{@hostname}\"") unless search(rc, /^HOSTNAME/)
41
+ puts "\s[OK]"
42
+ end
43
+
44
+ def locale
45
+ print ' => Updating locale system...'
46
+ control_options
47
+ conf = "#{MOUNTPOINT}/etc/locale.conf"
48
+ File.write(conf, "LANG=#{@lang}\n")
49
+ add_line(conf, 'LC_COLLATE=C')
50
+ conf = "#{MOUNTPOINT}/etc/default/libc-locales"
51
+ add_line(conf, @utf8)
52
+ puts "\s[OK]"
53
+ command 'xbps-reconfigure -f glibc-locales'
54
+ end
55
+
56
+ private
57
+
58
+ def control_options
59
+ search_zone(OPTIONS[:zoneinfo])
60
+ search_utf8(OPTIONS[:language])
61
+ search_key(OPTIONS[:keymap])
62
+ end
63
+
64
+ def search_key(keys)
65
+ @keymap = nil
66
+ Dir.glob("#{MOUNTPOINT}/usr/share/kbd/keymaps/**/#{keys}.map.gz") { |f|
67
+ @keymap = f
68
+ }
69
+ raise ArgumentError, "No keymap #{@keymap} found" unless @keymap
70
+ end
71
+
72
+ def search_zone(zone)
73
+ unless File.exist? "#{MOUNTPOINT}/usr/share/zoneinfo/#{zone}"
74
+ raise ArgumentError, "Zoneinfo #{zone} doesn\'t exist."
75
+ end
76
+ end
77
+
78
+ def search_utf8(lang)
79
+ @utf8, @lang = nil, nil
80
+ File.open("#{MOUNTPOINT}/etc/default/libc-locales").each do |l|
81
+ @utf8 = l.delete_prefix('#') if l.match(/#{lang}.UTF-8/)
82
+
83
+ found = l.split if l.match(/#{lang}.UTF-8/)
84
+ @lang = found[0].delete_prefix('#') if found
85
+ end
86
+ raise ArgumentError, "Lang #{lang} no found" unless @utf8
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'open-uri'
4
+ require 'open3'
5
+
6
+ module Getch
7
+ module Void
8
+ class RootFS
9
+ def initialize
10
+ @url = 'https://alpha.de.repo.voidlinux.org/live/current'
11
+ @file = 'sha256sum.txt'
12
+ @xbps = false
13
+ Dir.chdir(MOUNTPOINT)
14
+ end
15
+
16
+ # Search only the glibc x86_64 for now
17
+ def search_archive
18
+ yurl = "#{@url}/#{@file}"
19
+ puts "Open #{yurl}"
20
+ Helpers.get_file_online(yurl, @file)
21
+ File.open(@file).each do |l|
22
+ @xbps = l.tr('()', '').split(' ') if l.match(/void-x86_64-ROOTFS-[\d._]+.tar.xz/)
23
+ end
24
+ end
25
+
26
+ def download
27
+ raise StandardError, 'No file found, retry later.' unless @xbps
28
+ return if File.exist? @xbps[1]
29
+
30
+ puts "Downloading #{@xbps[1]}..."
31
+ Helpers.get_file_online("#{@url}/#{@xbps[1]}", @xbps[1])
32
+ end
33
+
34
+ def checksum
35
+ print ' => Checking SHA256 checksum...'
36
+ # Should contain 2 spaces...
37
+ command = "echo #{@xbps[3]} #{@xbps[1]} | sha256sum --check"
38
+ _, stderr, status = Open3.capture3(command)
39
+ if status.success? then
40
+ puts "\t[OK]"
41
+ decompress
42
+ cleaning
43
+ return
44
+ end
45
+ cleaning
46
+ raise "Problem with the checksum, stderr\n#{stderr}"
47
+ end
48
+
49
+ private
50
+
51
+ def decompress
52
+ print " => Decompressing archive #{@xbps[1]}..."
53
+ cmd = "tar xpf #{@xbps[1]} --xattrs-include=\'*.*\' --numeric-owner"
54
+ _, stderr, status = Open3.capture3(cmd)
55
+ if status.success? then
56
+ puts "\s[OK]"
57
+ return
58
+ end
59
+ cleaning
60
+ raise "Fail to decompress archive #{@xbps[1]} - #{stderr}."
61
+ end
62
+
63
+ def cleaning
64
+ Dir.glob('void-x86_64*.tar.xz').each { |f| File.delete(f) }
65
+ Dir.glob('sha256*').each { |f| File.delete(f) }
66
+ end
67
+ end
68
+ end
69
+ end
data/lib/getch/void.rb ADDED
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
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
+ module Getch
10
+ 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
+ end
65
+ end
data/lib/getch.rb CHANGED
@@ -1,25 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'getch/helpers'
1
4
  require_relative 'getch/options'
2
5
  require_relative 'getch/states'
3
6
  require_relative 'getch/gentoo'
7
+ require_relative 'getch/void'
4
8
  require_relative 'getch/filesystem'
5
9
  require_relative 'getch/command'
6
- require_relative 'getch/helpers'
7
10
  require_relative 'getch/log'
11
+ require_relative 'getch/config'
12
+ require_relative 'getch/guard'
13
+ require_relative 'getch/version'
8
14
 
9
15
  module Getch
10
16
 
11
- DEFAULT_OPTIONS = {
12
- language: 'en_US',
13
- zoneinfo: 'US/Eastern',
14
- keymap: 'us',
15
- disk: 'sda',
16
- fs: 'ext4',
17
- username: nil,
18
- boot_disk: nil,
19
- cache_disk: nil,
20
- home_disk: nil,
21
- encrypt: false,
22
- verbose: false
17
+ 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
23
30
  }
24
31
 
25
32
  STATES = {
@@ -29,83 +36,127 @@ module Getch
29
36
  :gentoo_base => false,
30
37
  :gentoo_config => false,
31
38
  :gentoo_update => false,
39
+ :gentoo_bootloader => false,
32
40
  :gentoo_kernel => false
33
41
  }
34
42
 
35
- MOUNTPOINT = "/mnt/gentoo".freeze
43
+ MOUNTPOINT = '/mnt/gentoo'
44
+
36
45
  DEFAULT_FS = {
37
46
  true => {
38
- ext4: Getch::FileSystem::Ext4::Encrypt,
39
- lvm: Getch::FileSystem::Lvm::Encrypt,
40
- zfs: Getch::FileSystem::Zfs::Encrypt
47
+ ext4: FileSystem::Ext4::Encrypt,
48
+ lvm: FileSystem::Lvm::Encrypt,
49
+ zfs: FileSystem::Zfs::Encrypt
41
50
  },
42
51
  false => {
43
- ext4: Getch::FileSystem::Ext4,
44
- lvm: Getch::FileSystem::Lvm,
45
- zfs: Getch::FileSystem::Zfs,
52
+ ext4: FileSystem::Ext4,
53
+ lvm: FileSystem::Lvm,
54
+ zfs: FileSystem::Zfs,
46
55
  }
47
56
  }.freeze
48
57
 
49
- def self.class_fs
50
- encrypt = DEFAULT_OPTIONS[:encrypt]
51
- fs = DEFAULT_OPTIONS[:fs].to_sym
52
- DEFAULT_FS[encrypt][fs]
58
+ def self.select_fs
59
+ encrypt = OPTIONS[:encrypt]
60
+ fs_sym = OPTIONS[:fs].to_sym
61
+ DEFAULT_FS[encrypt][fs_sym]
53
62
  end
54
63
 
55
- def self.resume_options(opts)
56
- puts "\nBuild Gentoo with the following args:\n"
57
- puts "Lang: #{DEFAULT_OPTIONS[:language]}"
58
- puts "Zoneinfo: #{DEFAULT_OPTIONS[:zoneinfo]}"
59
- puts "Keymap: #{DEFAULT_OPTIONS[:keymap]}"
60
- puts "Disk: #{DEFAULT_OPTIONS[:disk]}"
61
- puts "Filesystem: #{DEFAULT_OPTIONS[:fs]}"
62
- puts "Username: #{DEFAULT_OPTIONS[:username]}"
63
- puts "Encrypt: #{DEFAULT_OPTIONS[:encrypt]}"
64
- puts
65
- puts "separate-boot disk: #{DEFAULT_OPTIONS[:boot_disk]}"
66
- puts "separate-cache disk: #{DEFAULT_OPTIONS[:cache_disk]}"
67
- puts "separate-home disk: #{DEFAULT_OPTIONS[:home_disk]}"
68
- puts
69
- print "Continue? (n,y) "
70
- case gets.chomp
71
- when /^y|^Y/
72
- return
73
- else
74
- exit 1
64
+ class Main
65
+ def initialize(argv)
66
+ argv[:cli]
67
+ @class_fs = Getch::select_fs
68
+ @log = Log.new
69
+ Getch::States.new # Update States
75
70
  end
76
- end
77
71
 
78
- def self.format(disk, fs, user)
79
- return if STATES[:format] and STATES[:partition]
80
- log = Log.new
81
- puts
82
- print "Partition and format disk #{disk}, this will erase all data, continue? (n,y) "
83
- case gets.chomp
84
- when /^y|^Y/
85
- log.info("Partition start")
86
- class_fs::Partition.new
87
- class_fs::Format.new
88
- else
89
- exit 1
72
+ def resume
73
+ raise 'No disk, use at least getch with -d DISK' unless OPTIONS[:disk]
74
+
75
+ puts "\nBuild " + OPTIONS[:os].capitalize + " Linux with the following args:\n"
76
+ puts
77
+ puts "\tLang: #{OPTIONS[:language]}"
78
+ puts "\tZoneinfo: #{OPTIONS[:zoneinfo]}"
79
+ puts "\tKeymap: #{OPTIONS[:keymap]}"
80
+ puts "\tDisk: #{OPTIONS[:disk]}"
81
+ puts "\tFilesystem: #{OPTIONS[:fs]}"
82
+ puts "\tUsername: #{OPTIONS[:username]}"
83
+ puts "\tEncrypt: #{OPTIONS[:encrypt]}"
84
+ puts
85
+ puts "\tseparate-boot disk: #{OPTIONS[:boot_disk]}"
86
+ puts "\tseparate-cache disk: #{OPTIONS[:cache_disk]}"
87
+ puts "\tseparate-home disk: #{OPTIONS[:home_disk]}"
88
+ puts
89
+ print 'Continue? (y,N) '
90
+ case gets.chomp
91
+ when /^y|^Y/
92
+ return
93
+ else
94
+ exit
95
+ end
90
96
  end
91
- end
92
97
 
93
- def self.init_gentoo(options)
94
- gentoo = Getch::Gentoo
95
- gentoo.stage3
96
- gentoo.config(options)
97
- gentoo.chroot
98
- gentoo.kernel
99
- gentoo.boot(options)
100
- end
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
110
+ end
111
+
112
+ def format
113
+ return if STATES[:format]
101
114
 
102
- def self.main(argv)
103
- options = Options.new(argv)
104
- DEFAULT_OPTIONS.freeze
105
- resume_options(options)
106
- Getch::States.new # Update States
107
- format(options.disk, options.fs, options.username)
108
- class_fs::Mount.new.run
109
- init_gentoo(options)
115
+ @class_fs::Format.new
116
+ end
117
+
118
+ def mount
119
+ return if STATES[:mount]
120
+
121
+ @class_fs::Mount.new.run
122
+ end
123
+
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
133
+ end
134
+
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
143
+ end
144
+
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
+ def configure
154
+ config = Getch::Config::Main.new
155
+ config.ethernet
156
+ config.wifi
157
+ config.dns
158
+ config.sysctl
159
+ config.shell
160
+ end
110
161
  end
111
162
  end
data.tar.gz.sig CHANGED
Binary file
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.2
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - szorfein
@@ -35,7 +35,7 @@ cert_chain:
35
35
  F9Dl4EPzjBJOgQWf+NxzxNuNKI46Lp5Q8AI+xtDUHAPbSswHa40BA6ChFehP+j0L
36
36
  fg==
37
37
  -----END CERTIFICATE-----
38
- date: 2021-05-12 00:00:00.000000000 Z
38
+ date: 2022-01-26 00:00:00.000000000 Z
39
39
  dependencies: []
40
40
  description:
41
41
  email:
@@ -43,17 +43,19 @@ email:
43
43
  executables:
44
44
  - getch
45
45
  extensions: []
46
- extra_rdoc_files: []
46
+ extra_rdoc_files:
47
+ - README.md
47
48
  files:
48
- - ".gitignore"
49
- - CHANGELOG.md
50
49
  - README.md
51
- - Rakefile
50
+ - assets/network-stack.conf
51
+ - assets/system.conf
52
52
  - bin/getch
53
- - bin/setup.sh
54
- - getch.gemspec
53
+ - lib/cmdline.rb
55
54
  - lib/getch.rb
56
55
  - lib/getch/command.rb
56
+ - lib/getch/config.rb
57
+ - lib/getch/config/gentoo.rb
58
+ - lib/getch/config/void.rb
57
59
  - lib/getch/filesystem.rb
58
60
  - lib/getch/filesystem/clean.rb
59
61
  - lib/getch/filesystem/device.rb
@@ -68,9 +70,11 @@ files:
68
70
  - lib/getch/filesystem/ext4/encrypt/format.rb
69
71
  - lib/getch/filesystem/ext4/encrypt/mount.rb
70
72
  - lib/getch/filesystem/ext4/encrypt/partition.rb
73
+ - lib/getch/filesystem/ext4/encrypt/void.rb
71
74
  - lib/getch/filesystem/ext4/format.rb
72
75
  - lib/getch/filesystem/ext4/mount.rb
73
76
  - lib/getch/filesystem/ext4/partition.rb
77
+ - lib/getch/filesystem/ext4/void.rb
74
78
  - lib/getch/filesystem/lvm.rb
75
79
  - lib/getch/filesystem/lvm/config.rb
76
80
  - lib/getch/filesystem/lvm/deps.rb
@@ -82,9 +86,11 @@ files:
82
86
  - lib/getch/filesystem/lvm/encrypt/format.rb
83
87
  - lib/getch/filesystem/lvm/encrypt/mount.rb
84
88
  - lib/getch/filesystem/lvm/encrypt/partition.rb
89
+ - lib/getch/filesystem/lvm/encrypt/void.rb
85
90
  - lib/getch/filesystem/lvm/format.rb
86
91
  - lib/getch/filesystem/lvm/mount.rb
87
92
  - lib/getch/filesystem/lvm/partition.rb
93
+ - lib/getch/filesystem/lvm/void.rb
88
94
  - lib/getch/filesystem/mount.rb
89
95
  - lib/getch/filesystem/partition.rb
90
96
  - lib/getch/filesystem/zfs.rb
@@ -98,24 +104,36 @@ files:
98
104
  - lib/getch/filesystem/zfs/encrypt/format.rb
99
105
  - lib/getch/filesystem/zfs/encrypt/mount.rb
100
106
  - lib/getch/filesystem/zfs/encrypt/partition.rb
107
+ - lib/getch/filesystem/zfs/encrypt/void.rb
101
108
  - lib/getch/filesystem/zfs/format.rb
102
109
  - lib/getch/filesystem/zfs/mount.rb
103
110
  - lib/getch/filesystem/zfs/partition.rb
111
+ - lib/getch/filesystem/zfs/void.rb
104
112
  - lib/getch/gentoo.rb
105
113
  - lib/getch/gentoo/boot.rb
114
+ - lib/getch/gentoo/bootloader.rb
106
115
  - lib/getch/gentoo/chroot.rb
107
116
  - lib/getch/gentoo/config.rb
108
117
  - lib/getch/gentoo/sources.rb
109
118
  - lib/getch/gentoo/stage.rb
119
+ - lib/getch/gentoo/use.rb
120
+ - lib/getch/gentoo/use_flag.rb
121
+ - lib/getch/guard.rb
110
122
  - lib/getch/helpers.rb
111
123
  - lib/getch/log.rb
112
124
  - lib/getch/options.rb
113
125
  - lib/getch/states.rb
114
126
  - lib/getch/version.rb
127
+ - lib/getch/void.rb
128
+ - lib/getch/void/boot.rb
129
+ - lib/getch/void/chroot.rb
130
+ - lib/getch/void/config.rb
131
+ - lib/getch/void/stage.rb
115
132
  homepage: https://github.com/szorfein/getch
116
133
  licenses:
117
134
  - MIT
118
135
  metadata:
136
+ source_code_uri: https://github.com/szorfein/getch
119
137
  changelog_uri: https://github.com/szorfein/getch/blob/master/CHANGELOG.md
120
138
  bug_tracker_uri: https://github.com/szorfein/getch/issues
121
139
  wiki_uri: https://github.com/szorfein/getch
@@ -127,14 +145,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
127
145
  requirements:
128
146
  - - ">="
129
147
  - !ruby/object:Gem::Version
130
- version: '2.5'
148
+ version: 2.5.0
131
149
  required_rubygems_version: !ruby/object:Gem::Requirement
132
150
  requirements:
133
151
  - - ">="
134
152
  - !ruby/object:Gem::Version
135
153
  version: '0'
136
154
  requirements: []
137
- rubygems_version: 3.0.9
155
+ rubygems_version: 3.2.32
138
156
  signing_key:
139
157
  specification_version: 4
140
158
  summary: A CLI tool to install Gentoo
metadata.gz.sig CHANGED
Binary file
data/.gitignore DELETED
@@ -1,2 +0,0 @@
1
- *.gem
2
- *.swp
data/CHANGELOG.md DELETED
@@ -1,80 +0,0 @@
1
- ## 0.1.2, release 2021-05-12
2
- * DOCS update.
3
- * Keep Nano for those who need :)
4
- * ZFS use the last version >=2.0 with kernel stable =5.10
5
- * ZFS create a Log device and Cache device if getch is used with `--separate-cache`.
6
- * GRUB or Systemd-boot can now be installed on separate disk with `--separate-boot`.
7
- * Adding flag for ZFS `-o autotrim=on` (used with `zpool create`).
8
- * Encrypted swap use: `cipher=aes-xts-plain64:sha256,size=512` by default.
9
- * In the make.conf: add `-fomit-frame-pointer`, designed to reduce generated code size.
10
-
11
- ## 0.1.1, release 2020-11-01
12
- * Change mountpoint for the esp at /efi rather than /boot/efi
13
- * Replace Garden by Bask https://github.com/szorfein/bask
14
- * Correct option --username USERNAME, do not create a new partition.
15
- * New set of options --separate-{boot,cache,home} to install them on another disk
16
- * Refactor codes
17
- * Add cpu name to COMMON_FLAGS
18
- * Add cpuflags with app-portage/cpuid2cpuflags
19
- + Use the whole disk space available for / when option --username is unset
20
-
21
- ## 0.1.0, release 2020-10-15
22
- * Add the (Zeta) filesystem ZFS
23
- * `emerge --depclean` to save space.
24
- * Add a message when getch have finish, keep /mnt/gentoo if you need to add something.
25
- * Use systemd-detect-virt to detect a Virtual Guest.
26
-
27
- ## 0.0.9, release 2020-10-03
28
- * Add encryption on ext4 and lvm (BIOS,UEFI)
29
- * Correct KEYMAP="yes" with genkernel
30
- * Renaming option keyboard with keymap
31
- * GPG verification for ebuild
32
-
33
- ## 0.0.8, release 2020-09-30
34
- * Adding LVM via the option fs, `--fs lvm`.
35
- * Systemd-boot use the value of PARTUUID without initramfs.
36
- * Include lib logger.
37
- * Enhance functions to call program system Emerge, Make, ...
38
-
39
- ## 0.0.7, release 2020-09-22
40
- * Correct fstab.
41
- * Repair GRUB/fstab for BIOS system, add secure cmdline.
42
- * Create a swap volume equal to the memory installed.
43
- * Add vim and sudo
44
-
45
- ## 0.0.6, release 2020-09-19
46
- * Add support for QEMU guest with KVM and Virtio driver
47
- * Kernel compilation, initialize a config file with `make localyesconfig`.
48
- * More modular codes to start with encryption and other filesystems.
49
- * Add the new option --verbose to display output of compilation, etc...
50
-
51
- ## 0.0.5, release 2020-09-17
52
- * Generate a hostname
53
- * Configure systemd-boot for UEFI system
54
-
55
- ## 0.0.4, release 2020-09-16
56
- * Boot on a BIOS system with VirtualBox
57
- * Install Grub
58
- * Create user
59
- * Create passwd for root and user
60
- * Check lsmod to install deps (like wpa_supplicant) and patch the kernel
61
-
62
- ## 0.0.3, release 2020-09-14
63
- * Add dhcpcd, gentoo-sources, linux-firmware
64
- * Kernel build by using https://github.com/szorfein/garden
65
- * Populate /etc/portage (/etc/portage/package.{use,unmask,accept_keywords}/zzz_via_autounmask)
66
- * Download all the lastest ebuild via emerge-webrsync
67
- * Update gentoo via emerge -uDN @world
68
-
69
- ## 0.0.2, release 2020-09-12
70
- * Getch genere a file /tmp/install_gentoo to avoid to remake same task over and over
71
- * Support for ext4
72
- * Mount partition on /mnt/gentoo during the install
73
- * Download, verify the checksum and decompress the last stage3-amd64-systemd
74
-
75
- ## 0.0.1, release 2020-09-10
76
- * Partition disk (at least 15G required) with sgdisk (create /boot, /, /home, and swap)
77
- * Support for one disk with -d|--disk
78
- * Add few options for the CLI
79
- * Add bin/setup.sh to install ruby when boot on a ISO file
80
- * Init project
data/Rakefile DELETED
@@ -1,21 +0,0 @@
1
- # https://github.com/seattlerb/minitest#running-your-tests-
2
- require "rake/testtask"
3
- require File.dirname(__FILE__) + "/lib/getch/version"
4
-
5
- Rake::TestTask.new(:test) do |t|
6
- t.libs << "test"
7
- t.libs << "lib"
8
- t.test_files = FileList["test/test_*.rb"]
9
- end
10
-
11
- # Usage: rake gem:build
12
- namespace :gem do
13
- desc "build the gem"
14
- task :build do
15
- Dir["getch*.gem"].each {|f| File.unlink(f) }
16
- system("gem build getch.gemspec")
17
- system("gem install getch-#{Getch::VERSION}.gem -P HighSecurity")
18
- end
19
- end
20
-
21
- task :default => :test