getch 0.1.2 → 0.1.9

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