getch 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/getch.rb +29 -3
- data/lib/getch/disk.rb +4 -10
- data/lib/getch/gentoo.rb +45 -0
- data/lib/getch/gentoo/chroot.rb +59 -0
- data/lib/getch/gentoo/config.rb +94 -0
- data/lib/getch/gentoo/stage.rb +74 -0
- data/lib/getch/helpers.rb +32 -0
- data/lib/getch/mount.rb +43 -0
- data/lib/getch/options.rb +7 -7
- data/lib/getch/states.rb +21 -1
- data/lib/getch/version.rb +1 -1
- metadata +8 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 769727fcda94cc7d18928f9ae8dc107756073179877b2b47fcc75c03f5483dc2
|
4
|
+
data.tar.gz: 471c26161637a5d94ebd8c77708a4ae93bdfbc8f443ff1f120b60b4986f1f637
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dbe1bc854c99ae26e7a8dd4d62325224b9949909bcde2bb389830183bc91878847148b3995e8b8928e0481e3fc86233b359989b758bf7a915254a18f5a66940c
|
7
|
+
data.tar.gz: 3335a022ab70eecbae37c21026c3739751718f9dd38d4410137a15de26c32f8c7d0d7d658b609c29f03976233f54a33130971c7c9cff5291249c8a525e21e7a8
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/getch.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
require_relative 'getch/options'
|
2
2
|
require_relative 'getch/disk'
|
3
3
|
require_relative 'getch/states'
|
4
|
+
require_relative 'getch/mount'
|
5
|
+
require_relative 'getch/gentoo'
|
6
|
+
require_relative 'getch/helpers'
|
4
7
|
|
5
8
|
module Getch
|
6
9
|
|
@@ -11,15 +14,20 @@ module Getch
|
|
11
14
|
disk: 'sda',
|
12
15
|
fs: 'ext4',
|
13
16
|
username: nil
|
14
|
-
}
|
17
|
+
}.freeze
|
15
18
|
|
16
19
|
STATES = {
|
17
20
|
:partition => false,
|
18
21
|
:format => false,
|
19
22
|
:mount => false,
|
20
|
-
:gentoo_base => false
|
23
|
+
:gentoo_base => false,
|
24
|
+
:gentoo_config => false,
|
25
|
+
:gentoo_update => false
|
21
26
|
}
|
22
27
|
|
28
|
+
MOUNTPOINT = "/mnt/gentoo".freeze
|
29
|
+
#MOUNTPOINT = "/home/daggoth/lol".freeze
|
30
|
+
|
23
31
|
def self.resume_options(opts)
|
24
32
|
puts "\nBuild Gentoo with the following args:\n"
|
25
33
|
puts "lang: #{opts.language}"
|
@@ -53,10 +61,28 @@ module Getch
|
|
53
61
|
end
|
54
62
|
end
|
55
63
|
|
64
|
+
def self.mount(disk, user)
|
65
|
+
return if STATES[:mount]
|
66
|
+
mount = Getch::Mount.new(disk, user)
|
67
|
+
mount.swap
|
68
|
+
mount.root
|
69
|
+
mount.boot
|
70
|
+
mount.home
|
71
|
+
end
|
72
|
+
|
73
|
+
def self.init_gentoo(options)
|
74
|
+
gentoo = Getch::Gentoo
|
75
|
+
gentoo.stage3
|
76
|
+
gentoo.config(options)
|
77
|
+
gentoo.chroot
|
78
|
+
end
|
79
|
+
|
56
80
|
def self.main(argv)
|
57
|
-
options = Options.new(
|
81
|
+
options = Options.new(argv)
|
58
82
|
resume_options(options)
|
59
83
|
Getch::States.new() # Update States
|
60
84
|
format(options.disk, options.fs)
|
85
|
+
mount(options.disk, options.username)
|
86
|
+
init_gentoo(options)
|
61
87
|
end
|
62
88
|
end
|
data/lib/getch/disk.rb
CHANGED
@@ -6,10 +6,6 @@ module Getch
|
|
6
6
|
@state = Getch::States.new()
|
7
7
|
end
|
8
8
|
|
9
|
-
def efi?
|
10
|
-
Dir.exist? '/sys/firmware/efi/efivars'
|
11
|
-
end
|
12
|
-
|
13
9
|
# https://wiki.archlinux.org/index.php/Securely_wipe_disk
|
14
10
|
def cleaning
|
15
11
|
return if STATES[:partition ]
|
@@ -25,9 +21,9 @@ module Getch
|
|
25
21
|
|
26
22
|
def partition
|
27
23
|
return if STATES[:partition]
|
28
|
-
system("wipefs -a /dev/#{@hdd}")
|
29
24
|
system("sgdisk --zap-all /dev/#{@hdd}")
|
30
|
-
|
25
|
+
system("wipefs -a /dev/#{@hdd}")
|
26
|
+
if Helpers::efi? then
|
31
27
|
puts "Partition disk #{@hdd} for an EFI system"
|
32
28
|
partition_efi
|
33
29
|
else
|
@@ -40,15 +36,13 @@ module Getch
|
|
40
36
|
def format
|
41
37
|
return if STATES[:format]
|
42
38
|
puts "Format #{@hdd} with #{@fs}"
|
43
|
-
if efi? then
|
44
|
-
system("mkfs.
|
39
|
+
if Helpers::efi? then
|
40
|
+
system("mkfs.fat -F32 /dev/#{@hdd}1")
|
45
41
|
system("mkswap /dev/#{@hdd}2")
|
46
|
-
system("swapon /dev/#{@hdd}2")
|
47
42
|
system("mkfs.ext4 /dev/#{@hdd}3")
|
48
43
|
system("mkfs.ext4 /dev/#{@hdd}4")
|
49
44
|
else
|
50
45
|
system("mkswap /dev/#{@hdd}2")
|
51
|
-
system("swapon /dev/#{@hdd}2")
|
52
46
|
system("mkfs.ext4 /dev/#{@hdd}3")
|
53
47
|
system("mkfs.ext4 /dev/#{@hdd}4")
|
54
48
|
end
|
data/lib/getch/gentoo.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'open-uri'
|
2
|
+
require 'open3'
|
3
|
+
require_relative 'gentoo/stage'
|
4
|
+
require_relative 'gentoo/config'
|
5
|
+
require_relative 'gentoo/chroot'
|
6
|
+
|
7
|
+
module Getch
|
8
|
+
module Gentoo
|
9
|
+
class << self
|
10
|
+
def new
|
11
|
+
@state = Getch::States.new()
|
12
|
+
end
|
13
|
+
|
14
|
+
def stage3
|
15
|
+
return if STATES[:gentoo_base]
|
16
|
+
new
|
17
|
+
stage = Getch::Gentoo::Stage.new()
|
18
|
+
stage.get_stage3
|
19
|
+
stage.control_files
|
20
|
+
stage.checksum
|
21
|
+
@state.stage3
|
22
|
+
end
|
23
|
+
|
24
|
+
def config(options)
|
25
|
+
return if STATES[:gentoo_config]
|
26
|
+
new
|
27
|
+
config = Getch::Gentoo::Config.new()
|
28
|
+
config.portage
|
29
|
+
config.portage_fs
|
30
|
+
config.repo
|
31
|
+
config.network
|
32
|
+
config.systemd(options)
|
33
|
+
@state.config
|
34
|
+
end
|
35
|
+
|
36
|
+
def chroot
|
37
|
+
chroot = Getch::Gentoo::Chroot.new()
|
38
|
+
chroot.update
|
39
|
+
chroot.world
|
40
|
+
chroot.systemd
|
41
|
+
chroot.kernel
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module Getch
|
2
|
+
module Gentoo
|
3
|
+
class Chroot
|
4
|
+
def initialize
|
5
|
+
@state = Getch::States.new()
|
6
|
+
mount
|
7
|
+
end
|
8
|
+
|
9
|
+
def update
|
10
|
+
return if STATES[:gentoo_update]
|
11
|
+
puts "Downloading the last ebuilds for Gentoo..."
|
12
|
+
cmd = "emerge-webrsync"
|
13
|
+
exec_chroot(cmd)
|
14
|
+
end
|
15
|
+
|
16
|
+
def world
|
17
|
+
return if STATES[:gentoo_update]
|
18
|
+
puts "Update Gentoo"
|
19
|
+
cmd = "emerge --update --deep --newuse @world"
|
20
|
+
exec_chroot(cmd)
|
21
|
+
@state.update
|
22
|
+
end
|
23
|
+
|
24
|
+
def systemd
|
25
|
+
puts "Updating locale, keymap..."
|
26
|
+
cmd = "locale-gen; emerge --config sys-libs/timezone-data"
|
27
|
+
exec_chroot(cmd)
|
28
|
+
end
|
29
|
+
|
30
|
+
def kernel
|
31
|
+
puts "Installing kernel gentoo-sources..."
|
32
|
+
cmd = "emerge sys-kernel/gentoo-sources sys-kernel/linux-firmware"
|
33
|
+
license = "#{MOUNTPOINT}/etc/portage/package.license"
|
34
|
+
File.write(license, "sys-kernel/linux-firmware linux-fw-redistributable no-source-code\n")
|
35
|
+
exec_chroot(cmd)
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
def mount
|
40
|
+
puts "Populate /proc, /sys and /dev."
|
41
|
+
Helpers::exec_or_die("mount --types proc /proc \"#{MOUNTPOINT}/proc\"")
|
42
|
+
Helpers::exec_or_die("mount --rbind /sys \"#{MOUNTPOINT}/sys\"")
|
43
|
+
Helpers::exec_or_die("mount --make-rslave \"#{MOUNTPOINT}/sys\"")
|
44
|
+
Helpers::exec_or_die("mount --rbind /dev \"#{MOUNTPOINT}/dev\"")
|
45
|
+
Helpers::exec_or_die("mount --make-rslave \"#{MOUNTPOINT}/dev\"")
|
46
|
+
# Maybe add /dev/shm like describe here:
|
47
|
+
# https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Base
|
48
|
+
end
|
49
|
+
|
50
|
+
def exec_chroot(cmd)
|
51
|
+
script = "chroot #{MOUNTPOINT} /bin/bash -c \"
|
52
|
+
source /etc/profile
|
53
|
+
#{cmd}
|
54
|
+
\""
|
55
|
+
Helpers::exec_or_die(script)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require 'tempfile'
|
3
|
+
|
4
|
+
module Getch
|
5
|
+
module Gentoo
|
6
|
+
class Config
|
7
|
+
def initialize
|
8
|
+
@make = "#{MOUNTPOINT}/etc/portage/make.conf"
|
9
|
+
end
|
10
|
+
|
11
|
+
def portage
|
12
|
+
nproc = `nproc`.chomp()
|
13
|
+
data = [
|
14
|
+
'',
|
15
|
+
'ACCEPT_KEYWORD="amd64 ~amd64"',
|
16
|
+
"MAKEOPTS=\"-j#{nproc} -l#{nproc}\"",
|
17
|
+
'INPUT_DEVICES="libinput"'
|
18
|
+
]
|
19
|
+
File.write(@make, data.join("\n"), mode: "a")
|
20
|
+
end
|
21
|
+
|
22
|
+
def repo
|
23
|
+
src = "#{MOUNTPOINT}/usr/share/portage/config/repos.conf"
|
24
|
+
dest = "#{MOUNTPOINT}/etc/portage/repos.conf"
|
25
|
+
FileUtils.mkdir dest, mode: 0644 if ! Dir.exist?(dest)
|
26
|
+
line_count = 0
|
27
|
+
tmp_file = Tempfile.new('gentoo.conf')
|
28
|
+
File.open(src).each { |l|
|
29
|
+
File.write(tmp_file, "sync-allow-hardlinks = yes\n", mode: 'a') if line_count == 2
|
30
|
+
File.write(tmp_file, l, mode: 'a')
|
31
|
+
line_count += 1
|
32
|
+
}
|
33
|
+
FileUtils.copy_file(tmp_file, "#{dest}/gentoo.conf", preserve = false)
|
34
|
+
end
|
35
|
+
|
36
|
+
def network
|
37
|
+
src = '/etc/resolv.conf'
|
38
|
+
dest = "#{MOUNTPOINT}/etc/resolv.conf"
|
39
|
+
FileUtils.copy_file(src, dest, preserve = false)
|
40
|
+
end
|
41
|
+
|
42
|
+
def systemd(options)
|
43
|
+
control_options(options)
|
44
|
+
File.write("#{MOUNTPOINT}/etc/locale.gen", @utf8)
|
45
|
+
File.write("#{MOUNTPOINT}/etc/locale.conf", "LANG=#{@lang}")
|
46
|
+
File.write("#{MOUNTPOINT}/etc/locale.conf", 'LC_COLLATE=C', mode: 'a')
|
47
|
+
File.write("#{MOUNTPOINT}/etc/timezone", "#{options.zoneinfo}")
|
48
|
+
File.write("#{MOUNTPOINT}/etc/vconsole.conf", "KEYMAP=#{@keymap}")
|
49
|
+
end
|
50
|
+
|
51
|
+
def portage_fs
|
52
|
+
portage = "#{MOUNTPOINT}/etc/portage"
|
53
|
+
Helpers::create_dir("#{portage}/package.use")
|
54
|
+
Helpers::create_dir("#{portage}/package.accept_keywords")
|
55
|
+
Helpers::create_dir("#{portage}/package.unmask")
|
56
|
+
|
57
|
+
Helpers::add_file("#{portage}/package.use/zzz_via_autounmask")
|
58
|
+
Helpers::add_file("#{portage}/package.accept_keywords/zzz_via_autounmask")
|
59
|
+
Helpers::add_file("#{portage}/package.unmask/zzz_via_autounmask")
|
60
|
+
end
|
61
|
+
|
62
|
+
private
|
63
|
+
|
64
|
+
def control_options(options)
|
65
|
+
search_zone(options.zoneinfo)
|
66
|
+
search_utf8(options.language)
|
67
|
+
search_key(options.keyboard)
|
68
|
+
end
|
69
|
+
|
70
|
+
def search_key(keys)
|
71
|
+
@keymap = nil
|
72
|
+
Dir.glob("#{MOUNTPOINT}/usr/share/keymaps/**/#{keys}.map.gz") { |f|
|
73
|
+
@keymap = f
|
74
|
+
}
|
75
|
+
raise "No keymap #{@keymap} found" if ! @keymap
|
76
|
+
end
|
77
|
+
|
78
|
+
def search_zone(zone)
|
79
|
+
if ! File.exist?("#{MOUNTPOINT}/usr/share/zoneinfo/#{zone}")
|
80
|
+
raise "Zoneinfo #{zone} doesn\'t exist."
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def search_utf8(lang)
|
85
|
+
@utf8, @lang = nil, nil
|
86
|
+
File.open("#{MOUNTPOINT}/usr/share/i18n/SUPPORTED").each { |l|
|
87
|
+
@utf8 = $~[0] if l.match(/^#{lang}[. ]+[utf\-8 ]+/i)
|
88
|
+
@lang = $~[0] if l.match(/^#{lang}[. ]+utf\-8/i)
|
89
|
+
}
|
90
|
+
raise "Lang #{lang} no found" if ! @utf8
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
require 'open-uri'
|
2
|
+
require 'open3'
|
3
|
+
|
4
|
+
module Getch
|
5
|
+
module Gentoo
|
6
|
+
class Stage
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
@mirror = "https://mirrors.soeasyto.com/distfiles.gentoo.org"
|
10
|
+
@release = release
|
11
|
+
@stage_file="stage3-amd64-systemd-#{@release}.tar.xz"
|
12
|
+
end
|
13
|
+
|
14
|
+
def stage3
|
15
|
+
@mirror + '/releases/amd64/autobuilds/latest-stage3-amd64-systemd.txt'
|
16
|
+
end
|
17
|
+
|
18
|
+
def release
|
19
|
+
URI.open(stage3) do |file|
|
20
|
+
file.read.match(/^[[:alnum:]]+/)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def file
|
25
|
+
"#{@release}/#{@stage_file}"
|
26
|
+
end
|
27
|
+
|
28
|
+
def get_stage3
|
29
|
+
Dir.chdir(MOUNTPOINT)
|
30
|
+
return if File.exist?(@stage_file)
|
31
|
+
puts "Download the last #{@stage_file}, please wait..."
|
32
|
+
Helpers::get_file_online(@mirror + "/releases/amd64/autobuilds/" + file, @stage_file)
|
33
|
+
end
|
34
|
+
|
35
|
+
def control_files
|
36
|
+
puts "Download the DIGESTS"
|
37
|
+
Helpers::get_file_online(@mirror + "/releases/amd64/autobuilds/" + file + ".DIGESTS", "#{@stage_file}.DIGESTS")
|
38
|
+
puts "Download the DIGESTS.asc"
|
39
|
+
Helpers::get_file_online(@mirror + "/releases/amd64/autobuilds/" + file + ".DIGESTS.asc", "#{@stage_file}.DIGESTS.asc")
|
40
|
+
puts "Download the CONTENTS.gz"
|
41
|
+
Helpers::get_file_online(@mirror + "/releases/amd64/autobuilds/" + file + ".CONTENTS.gz", "#{@stage_file}.CONTENTS.gz")
|
42
|
+
end
|
43
|
+
|
44
|
+
def checksum
|
45
|
+
puts 'Check the SHA512 checksum.'
|
46
|
+
command = "awk '/SHA512 HASH/{getline;print}' #{@stage_file}.DIGESTS.asc | sha512sum --check"
|
47
|
+
_, stderr, status = Open3.capture3(command)
|
48
|
+
if status.success? then
|
49
|
+
puts "Checksum is ok"
|
50
|
+
decompress
|
51
|
+
cleaning
|
52
|
+
else
|
53
|
+
cleaning
|
54
|
+
raise "Problem with the checksum, stderr\n#{stderr}"
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
private
|
59
|
+
|
60
|
+
# https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Stage
|
61
|
+
def decompress
|
62
|
+
puts "Decompressing archive #{@stage_file}..."
|
63
|
+
cmd = "tar xpvf #{@stage_file} --xattrs-include='*.*' --numeric-owner"
|
64
|
+
Helpers::exec_or_die(cmd)
|
65
|
+
end
|
66
|
+
|
67
|
+
def cleaning
|
68
|
+
Dir.glob("stage3-amd64-systemd*").each do |f|
|
69
|
+
File.delete(f)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'open-uri'
|
2
|
+
require 'open3'
|
3
|
+
require 'fileutils'
|
4
|
+
|
5
|
+
module Helpers
|
6
|
+
def self.efi?
|
7
|
+
Dir.exist? '/sys/firmware/efi/efivars'
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.get_file_online(url, dest)
|
11
|
+
URI.open(url) do |l|
|
12
|
+
File.open(dest, "wb") do |f|
|
13
|
+
f.write(l.read)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.exec_or_die(cmd)
|
19
|
+
_, stderr, status = Open3.capture3(cmd)
|
20
|
+
unless status.success?
|
21
|
+
raise "Problem running #{cmd}, stderr was:\n#{stderr}"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.create_dir(path, perm = 0755)
|
26
|
+
FileUtils.mkdir_p path, mode: perm if ! Dir.exist?(path)
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.add_file(path, content = '')
|
30
|
+
File.write path, content if ! File.exist? path
|
31
|
+
end
|
32
|
+
end
|
data/lib/getch/mount.rb
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
3
|
+
module Getch
|
4
|
+
class Mount
|
5
|
+
def initialize(disk, user)
|
6
|
+
@disk = disk
|
7
|
+
@user = user
|
8
|
+
@dest = MOUNTPOINT
|
9
|
+
@boot_efi = MOUNTPOINT + '/boot/efi'
|
10
|
+
@home = @user == nil ? MOUNTPOINT + '/home' : MOUNTPOINT + "/home/#{@user}"
|
11
|
+
@state = Getch::States.new()
|
12
|
+
end
|
13
|
+
|
14
|
+
def swap
|
15
|
+
return if STATES[:mount]
|
16
|
+
system("swapon /dev/#{@disk}2")
|
17
|
+
end
|
18
|
+
|
19
|
+
def root
|
20
|
+
return if STATES[:mount]
|
21
|
+
Dir.mkdir(@dest, 0700) if ! Dir.exist?(@dest)
|
22
|
+
system("mount /dev/#{@disk}3 #{@dest}")
|
23
|
+
end
|
24
|
+
|
25
|
+
def boot
|
26
|
+
return if STATES[:mount]
|
27
|
+
if Helpers::efi? then
|
28
|
+
FileUtils.mkdir_p @boot_efi, mode: 0700 if ! Dir.exist?(@boot_efi)
|
29
|
+
system("mount /dev/#{@disk}1 #{@boot_efi}")
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def home
|
34
|
+
return if STATES[:mount]
|
35
|
+
if @user != nil then
|
36
|
+
FileUtils.mkdir_p @home, mode: 0700 if ! Dir.exist?(@home)
|
37
|
+
system("mount /dev/#{@disk}4 #{@home}")
|
38
|
+
FileUtils.chown @user, @user, @home
|
39
|
+
end
|
40
|
+
@state.mount
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
data/lib/getch/options.rb
CHANGED
@@ -4,13 +4,13 @@ module Getch
|
|
4
4
|
class Options
|
5
5
|
attr_reader :language, :zoneinfo, :keyboard, :disk, :fs, :username
|
6
6
|
|
7
|
-
def initialize(
|
8
|
-
@language =
|
9
|
-
@zoneinfo =
|
10
|
-
@keyboard =
|
11
|
-
@disk =
|
12
|
-
@fs =
|
13
|
-
@username =
|
7
|
+
def initialize(argv)
|
8
|
+
@language = DEFAULT_OPTIONS[:language]
|
9
|
+
@zoneinfo = DEFAULT_OPTIONS[:location]
|
10
|
+
@keyboard = DEFAULT_OPTIONS[:keyboard]
|
11
|
+
@disk = DEFAULT_OPTIONS[:disk]
|
12
|
+
@fs = DEFAULT_OPTIONS[:fs]
|
13
|
+
@username = DEFAULT_OPTIONS[:username]
|
14
14
|
parse(argv)
|
15
15
|
end
|
16
16
|
|
data/lib/getch/states.rb
CHANGED
@@ -17,6 +17,26 @@ module Getch
|
|
17
17
|
save
|
18
18
|
end
|
19
19
|
|
20
|
+
def mount
|
21
|
+
STATES[:mount] = true
|
22
|
+
save
|
23
|
+
end
|
24
|
+
|
25
|
+
def stage3
|
26
|
+
STATES[:gentoo_base] = true
|
27
|
+
save
|
28
|
+
end
|
29
|
+
|
30
|
+
def config
|
31
|
+
STATES[:gentoo_config] = true
|
32
|
+
save
|
33
|
+
end
|
34
|
+
|
35
|
+
def update
|
36
|
+
STATES[:gentoo_update] = true
|
37
|
+
save
|
38
|
+
end
|
39
|
+
|
20
40
|
private
|
21
41
|
|
22
42
|
def save
|
@@ -24,7 +44,7 @@ module Getch
|
|
24
44
|
end
|
25
45
|
|
26
46
|
def load_state()
|
27
|
-
if File.
|
47
|
+
if File.exist? @file
|
28
48
|
state_file = YAML.load_file(@file)
|
29
49
|
STATES.merge!(state_file)
|
30
50
|
else
|
data/lib/getch/version.rb
CHANGED
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.0.
|
4
|
+
version: 0.0.3
|
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-09-
|
38
|
+
date: 2020-09-14 00:00:00.000000000 Z
|
39
39
|
dependencies: []
|
40
40
|
description:
|
41
41
|
email:
|
@@ -53,6 +53,12 @@ files:
|
|
53
53
|
- getch.gemspec
|
54
54
|
- lib/getch.rb
|
55
55
|
- lib/getch/disk.rb
|
56
|
+
- lib/getch/gentoo.rb
|
57
|
+
- lib/getch/gentoo/chroot.rb
|
58
|
+
- lib/getch/gentoo/config.rb
|
59
|
+
- lib/getch/gentoo/stage.rb
|
60
|
+
- lib/getch/helpers.rb
|
61
|
+
- lib/getch/mount.rb
|
56
62
|
- lib/getch/options.rb
|
57
63
|
- lib/getch/states.rb
|
58
64
|
- lib/getch/version.rb
|
metadata.gz.sig
CHANGED
Binary file
|