getch 0.0.2 → 0.0.7

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.
@@ -2,15 +2,17 @@ require 'optparse'
2
2
 
3
3
  module Getch
4
4
  class Options
5
- attr_reader :language, :zoneinfo, :keyboard, :disk, :fs, :username
5
+ attr_reader :language, :zoneinfo, :keyboard, :disk, :fs, :username, :encrypt, :verbose
6
6
 
7
- def initialize(default, argv)
8
- @language = default[:language]
9
- @zoneinfo = default[:location]
10
- @keyboard = default[:keyboard]
11
- @disk = default[:disk]
12
- @fs = default[:fs]
13
- @username = default[:username]
7
+ def initialize(argv)
8
+ @language = DEFAULT_OPTIONS[:language]
9
+ @zoneinfo = DEFAULT_OPTIONS[:zoneinfo]
10
+ @keyboard = DEFAULT_OPTIONS[:keyboard]
11
+ @disk = DEFAULT_OPTIONS[:disk]
12
+ @fs = DEFAULT_OPTIONS[:fs]
13
+ @username = DEFAULT_OPTIONS[:username]
14
+ @encrypt = DEFAULT_OPTIONS[:encrypt]
15
+ @verbose = DEFAULT_OPTIONS[:verbose]
14
16
  parse(argv)
15
17
  end
16
18
 
@@ -36,11 +38,17 @@ module Getch
36
38
  opts.on("-u", "--username USERNAME", "Initialize /home/username") do |user|
37
39
  @username = user
38
40
  end
41
+ opts.on("--encrypt", "Encrypt your filesystem.!! NOT YET READY !!") do
42
+ @encrypt = true
43
+ end
44
+ opts.on("--verbose", "Write more messages to the standard output.") do
45
+ @verbose = true
46
+ end
39
47
  opts.on("-h", "--help", "Display this") do
40
48
  puts opts
41
49
  exit
42
50
  end
43
- end.parse!
51
+ end.parse!(into: DEFAULT_OPTIONS)
44
52
  end
45
53
  end
46
54
  end
@@ -17,6 +17,31 @@ 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
+
40
+ def kernel
41
+ STATES[:gentoo_kernel] = true
42
+ save
43
+ end
44
+
20
45
  private
21
46
 
22
47
  def save
@@ -24,7 +49,7 @@ module Getch
24
49
  end
25
50
 
26
51
  def load_state()
27
- if File.exists? @file
52
+ if File.exist? @file
28
53
  state_file = YAML.load_file(@file)
29
54
  STATES.merge!(state_file)
30
55
  else
@@ -1,3 +1,3 @@
1
1
  module Getch
2
- VERSION = '0.0.2'.freeze
2
+ VERSION = '0.0.7'.freeze
3
3
  end
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.2
4
+ version: 0.0.7
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-12 00:00:00.000000000 Z
38
+ date: 2020-09-22 00:00:00.000000000 Z
39
39
  dependencies: []
40
40
  description:
41
41
  email:
@@ -46,20 +46,46 @@ extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
48
  - ".gitignore"
49
+ - CHANGELOG.md
49
50
  - README.md
50
51
  - Rakefile
51
52
  - bin/getch
52
53
  - bin/setup.sh
53
54
  - getch.gemspec
54
55
  - lib/getch.rb
55
- - lib/getch/disk.rb
56
+ - lib/getch/command.rb
57
+ - lib/getch/filesystem.rb
58
+ - lib/getch/filesystem/ext4.rb
59
+ - lib/getch/filesystem/ext4/config.rb
60
+ - lib/getch/filesystem/ext4/deps.rb
61
+ - lib/getch/filesystem/ext4/device.rb
62
+ - lib/getch/filesystem/ext4/encrypt.rb
63
+ - lib/getch/filesystem/ext4/encrypt/config.rb
64
+ - lib/getch/filesystem/ext4/encrypt/deps.rb
65
+ - lib/getch/filesystem/ext4/encrypt/device.rb
66
+ - lib/getch/filesystem/ext4/encrypt/format.rb
67
+ - lib/getch/filesystem/ext4/encrypt/mount.rb
68
+ - lib/getch/filesystem/ext4/encrypt/partition.rb
69
+ - lib/getch/filesystem/ext4/format.rb
70
+ - lib/getch/filesystem/ext4/mount.rb
71
+ - lib/getch/filesystem/ext4/partition.rb
72
+ - lib/getch/gentoo.rb
73
+ - lib/getch/gentoo/boot.rb
74
+ - lib/getch/gentoo/chroot.rb
75
+ - lib/getch/gentoo/config.rb
76
+ - lib/getch/gentoo/sources.rb
77
+ - lib/getch/gentoo/stage.rb
78
+ - lib/getch/helpers.rb
56
79
  - lib/getch/options.rb
57
80
  - lib/getch/states.rb
58
81
  - lib/getch/version.rb
59
82
  homepage: https://github.com/szorfein/getch
60
83
  licenses:
61
84
  - MIT
62
- metadata: {}
85
+ metadata:
86
+ changelog_uri: https://github.com/szorfein/getch/blob/master/CHANGELOG.md
87
+ bug_tracker_uri: https://github.com/szorfein/getch/issues
88
+ wiki_uri: https://github.com/szorfein/getch
63
89
  post_install_message:
64
90
  rdoc_options: []
65
91
  require_paths:
@@ -75,7 +101,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
101
  - !ruby/object:Gem::Version
76
102
  version: '0'
77
103
  requirements: []
78
- rubygems_version: 3.1.3
104
+ rubygems_version: 3.1.4
79
105
  signing_key:
80
106
  specification_version: 4
81
107
  summary: A CLI tool to install Gentoo
metadata.gz.sig CHANGED
Binary file
@@ -1,83 +0,0 @@
1
- module Getch
2
- class Disk
3
- def initialize(disk, fs)
4
- @hdd = disk
5
- @fs = fs
6
- @state = Getch::States.new()
7
- end
8
-
9
- def efi?
10
- Dir.exist? '/sys/firmware/efi/efivars'
11
- end
12
-
13
- # https://wiki.archlinux.org/index.php/Securely_wipe_disk
14
- def cleaning
15
- return if STATES[:partition ]
16
- puts
17
- print "Cleaning data on #{@hdd}, can be long, avoid this on Flash Memory (SSD,USB,...) ? (n,y) "
18
- case gets.chomp
19
- when /^y|^Y/
20
- system("dd if=/dev/urandom of=/dev/#{@hdd} bs=4M status=progress")
21
- else
22
- return
23
- end
24
- end
25
-
26
- def partition
27
- return if STATES[:partition]
28
- system("wipefs -a /dev/#{@hdd}")
29
- system("sgdisk --zap-all /dev/#{@hdd}")
30
- if efi? then
31
- puts "Partition disk #{@hdd} for an EFI system"
32
- partition_efi
33
- else
34
- puts "Partition disk #{@hdd} for a Bios system"
35
- partition_bios
36
- end
37
- @state.partition
38
- end
39
-
40
- def format
41
- return if STATES[:format]
42
- puts "Format #{@hdd} with #{@fs}"
43
- if efi? then
44
- system("mkfs.vfat -F32 /dev/#{@hdd}1")
45
- system("mkswap /dev/#{@hdd}2")
46
- system("swapon /dev/#{@hdd}2")
47
- system("mkfs.ext4 /dev/#{@hdd}3")
48
- system("mkfs.ext4 /dev/#{@hdd}4")
49
- else
50
- system("mkswap /dev/#{@hdd}2")
51
- system("swapon /dev/#{@hdd}2")
52
- system("mkfs.ext4 /dev/#{@hdd}3")
53
- system("mkfs.ext4 /dev/#{@hdd}4")
54
- end
55
- @state.format
56
- end
57
-
58
- private
59
-
60
- # follow https://wiki.archlinux.org/index.php/Partitioning
61
- def partition_efi
62
- # /boot/efi - EFI system partition - 260MB
63
- # swap - Linux Swap - size of the ram
64
- # / - Root
65
- # /home - Home
66
- system("sgdisk -n1:1M:+260M -t1:EF00 /dev/#{@hdd}") # boot EFI
67
- system("sgdisk -n2:0:+2G -t2:8200 /dev/#{@hdd}") # swap
68
- system("sgdisk -n3:0:+15G -t3:8304 /dev/#{@hdd}") # root
69
- system("sgdisk -n4:0:0 -t3:8302 /dev/#{@hdd}") # home
70
- end
71
-
72
- def partition_bios
73
- # None - Bios Boot Partition - 1MiB
74
- # swap - Linux Swap - size of the ram
75
- # / - Root
76
- # /home - Home
77
- system("sgdisk -n1:1MiB:+1MiB -t1:EF02 /dev/#{@hdd}") # Bios boot
78
- system("sgdisk -n2:0:+2G -t2:8200 /dev/#{@hdd}") # swap
79
- system("sgdisk -n3:0:+15G -t3:8304 /dev/#{@hdd}") # root
80
- system("sgdisk -n4:0:0 -t3:8302 /dev/#{@hdd}") # home
81
- end
82
- end
83
- end