getch 0.0.2 → 0.0.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.
- 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
|