getch 0.1.6 → 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 (88) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/README.md +17 -26
  4. data/assets/system.conf +38 -0
  5. data/lib/cmdline.rb +128 -0
  6. data/lib/getch/command.rb +31 -21
  7. data/lib/getch/config/gentoo.rb +22 -23
  8. data/lib/getch/config/void.rb +8 -10
  9. data/lib/getch/config.rb +5 -2
  10. data/lib/getch/filesystem/clean.rb +15 -15
  11. data/lib/getch/filesystem/device.rb +3 -1
  12. data/lib/getch/filesystem/ext4/config.rb +8 -4
  13. data/lib/getch/filesystem/ext4/deps.rb +3 -1
  14. data/lib/getch/filesystem/ext4/device.rb +2 -3
  15. data/lib/getch/filesystem/ext4/encrypt/config.rb +12 -7
  16. data/lib/getch/filesystem/ext4/encrypt/deps.rb +4 -2
  17. data/lib/getch/filesystem/ext4/encrypt/device.rb +5 -3
  18. data/lib/getch/filesystem/ext4/encrypt/format.rb +4 -1
  19. data/lib/getch/filesystem/ext4/encrypt/mount.rb +3 -2
  20. data/lib/getch/filesystem/ext4/encrypt/partition.rb +21 -21
  21. data/lib/getch/filesystem/ext4/encrypt/void.rb +22 -21
  22. data/lib/getch/filesystem/ext4/encrypt.rb +2 -0
  23. data/lib/getch/filesystem/ext4/format.rb +3 -0
  24. data/lib/getch/filesystem/ext4/mount.rb +3 -0
  25. data/lib/getch/filesystem/ext4/partition.rb +9 -6
  26. data/lib/getch/filesystem/ext4/void.rb +8 -7
  27. data/lib/getch/filesystem/ext4.rb +2 -0
  28. data/lib/getch/filesystem/lvm/config.rb +7 -22
  29. data/lib/getch/filesystem/lvm/deps.rb +6 -4
  30. data/lib/getch/filesystem/lvm/device.rb +2 -0
  31. data/lib/getch/filesystem/lvm/encrypt/config.rb +12 -9
  32. data/lib/getch/filesystem/lvm/encrypt/deps.rb +6 -3
  33. data/lib/getch/filesystem/lvm/encrypt/device.rb +4 -2
  34. data/lib/getch/filesystem/lvm/encrypt/format.rb +4 -0
  35. data/lib/getch/filesystem/lvm/encrypt/mount.rb +3 -0
  36. data/lib/getch/filesystem/lvm/encrypt/partition.rb +7 -7
  37. data/lib/getch/filesystem/lvm/encrypt/void.rb +20 -19
  38. data/lib/getch/filesystem/lvm/encrypt.rb +2 -0
  39. data/lib/getch/filesystem/lvm/format.rb +3 -0
  40. data/lib/getch/filesystem/lvm/mount.rb +3 -0
  41. data/lib/getch/filesystem/lvm/partition.rb +8 -5
  42. data/lib/getch/filesystem/lvm/void.rb +7 -6
  43. data/lib/getch/filesystem/lvm.rb +2 -0
  44. data/lib/getch/filesystem/mount.rb +19 -12
  45. data/lib/getch/filesystem/partition.rb +16 -8
  46. data/lib/getch/filesystem/zfs/config.rb +9 -23
  47. data/lib/getch/filesystem/zfs/deps.rb +22 -57
  48. data/lib/getch/filesystem/zfs/device.rb +3 -1
  49. data/lib/getch/filesystem/zfs/encrypt/config.rb +10 -26
  50. data/lib/getch/filesystem/zfs/encrypt/deps.rb +25 -60
  51. data/lib/getch/filesystem/zfs/encrypt/device.rb +3 -1
  52. data/lib/getch/filesystem/zfs/encrypt/format.rb +12 -8
  53. data/lib/getch/filesystem/zfs/encrypt/mount.rb +13 -8
  54. data/lib/getch/filesystem/zfs/encrypt/partition.rb +18 -15
  55. data/lib/getch/filesystem/zfs/encrypt/void.rb +23 -22
  56. data/lib/getch/filesystem/zfs/encrypt.rb +2 -0
  57. data/lib/getch/filesystem/zfs/format.rb +9 -5
  58. data/lib/getch/filesystem/zfs/mount.rb +9 -7
  59. data/lib/getch/filesystem/zfs/partition.rb +15 -12
  60. data/lib/getch/filesystem/zfs/void.rb +20 -20
  61. data/lib/getch/filesystem/zfs.rb +2 -0
  62. data/lib/getch/filesystem.rb +2 -0
  63. data/lib/getch/gentoo/boot.rb +21 -72
  64. data/lib/getch/gentoo/bootloader.rb +68 -0
  65. data/lib/getch/gentoo/chroot.rb +26 -33
  66. data/lib/getch/gentoo/config.rb +30 -26
  67. data/lib/getch/gentoo/sources.rb +55 -66
  68. data/lib/getch/gentoo/stage.rb +12 -12
  69. data/lib/getch/gentoo/use.rb +3 -7
  70. data/lib/getch/gentoo/use_flag.rb +77 -51
  71. data/lib/getch/gentoo.rb +22 -8
  72. data/lib/getch/guard.rb +50 -43
  73. data/lib/getch/helpers.rb +155 -143
  74. data/lib/getch/log.rb +7 -5
  75. data/lib/getch/options.rb +16 -14
  76. data/lib/getch/states.rb +10 -3
  77. data/lib/getch/version.rb +1 -1
  78. data/lib/getch/void/boot.rb +18 -14
  79. data/lib/getch/void/chroot.rb +20 -19
  80. data/lib/getch/void/config.rb +20 -17
  81. data/lib/getch/void/stage.rb +13 -14
  82. data/lib/getch/void.rb +7 -1
  83. data/lib/getch.rb +13 -5
  84. data.tar.gz.sig +0 -0
  85. metadata +6 -5
  86. metadata.gz.sig +0 -0
  87. data/lib/getch/filesystem/.mount.rb.swp +0 -0
  88. data/lib/getch/filesystem/zfs/encrypt/.mount.rb.swp +0 -0
@@ -1,10 +1,11 @@
1
- require_relative '../../helpers'
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Getch
4
4
  module FileSystem
5
5
  module Zfs
6
6
  class Void < Device
7
7
  include Helpers::Void
8
+
8
9
  attr_reader :boot_disk
9
10
 
10
11
  def initialize
@@ -21,19 +22,18 @@ module Getch
21
22
  def fstab
22
23
  conf = "#{MOUNTPOINT}/etc/fstab"
23
24
  File.write(conf, "\n", mode: 'w', chmod: 0644)
24
- line_fstab(@dev_esp, "/efi vfat noauto,rw,relatime 0 0") if @dev_esp
25
- line_fstab(@dev_swap, "swap swap rw,noatime,discard 0 0") if @dev_swap
25
+ line_fstab(@dev_esp, '/efi vfat noauto,rw,relatime 0 0') if @dev_esp
26
+ line_fstab(@dev_swap, 'swap swap rw,noatime,discard 0 0') if @dev_swap
26
27
  #add_line(conf, "#{@boot_pool_name}/BOOT/#{@n} /boot zfs defaults 0 0") if @dev_boot
27
- add_line(conf, "tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0")
28
+ add_line(conf, 'tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0')
28
29
  end
29
30
 
30
31
  def config_dracut
31
32
  conf = "#{MOUNTPOINT}/etc/dracut.conf.d/zfs.conf"
32
33
  # dracut: value+= should be surrounding by white space
33
34
  content = [
34
- "hostonly=\"yes\"",
35
- "omit_dracutmodules+=\" btrfs lvm \"",
36
- ""
35
+ 'hostonly="yes"',
36
+ 'omit_dracutmodules+=" btrfs lvm "',
37
37
  ]
38
38
  File.write(conf, content.join("\n"), mode: 'w', chmod: 0644)
39
39
  end
@@ -43,37 +43,37 @@ module Getch
43
43
  end
44
44
 
45
45
  def config_grub
46
- grub_cmdline("root=zfs:#{@pool_name}/ROOT/#{@n}", "zfs_force=1")
46
+ grub_cmdline("root=zfs:#{@pool_name}/ROOT/#{@n}", 'zfs_force=1', 'zfs.zfs_arc_max=536870912')
47
47
  end
48
48
 
49
49
  def finish
50
50
  zed_update_path
51
- puts "+ Enter in your system: chroot /mnt /bin/bash"
52
- puts "+ Reboot with: shutdown -r now"
51
+ puts '+ Enter in your system: chroot /mnt /bin/bash'
52
+ puts '+ Reboot with: shutdown -r now'
53
53
  end
54
54
 
55
55
  private
56
56
 
57
57
  def zfs_zed
58
- service_dir = "/etc/runit/runsvdir/default/"
58
+ service_dir = '/etc/runit/runsvdir/default/'
59
59
 
60
- Helpers::mkdir("#{MOUNTPOINT}/etc/zfs/zfs-list.cache")
61
- Helpers::touch("#{MOUNTPOINT}/etc/zfs/zfs-list.cache/#{@boot_pool_name}") if @dev_boot
62
- Helpers::touch("#{MOUNTPOINT}/etc/zfs/zfs-list.cache/#{@pool_name}")
63
- fork { command "/etc/sv/zed/run" }
60
+ Helpers.mkdir("#{MOUNTPOINT}/etc/zfs/zfs-list.cache")
61
+ Helpers.touch("#{MOUNTPOINT}/etc/zfs/zfs-list.cache/#{@boot_pool_name}") if @dev_boot
62
+ Helpers.touch("#{MOUNTPOINT}/etc/zfs/zfs-list.cache/#{@pool_name}")
63
+ fork { command '/etc/sv/zed/run' }
64
64
  command "ln -fs /etc/sv/zed #{service_dir}"
65
65
  end
66
66
 
67
67
  def zed_update_path
68
- Dir.glob("#{MOUNTPOINT}/etc/zfs/zfs-list.cache/*").each { |f|
69
- if !system("sed", "-Ei", "s|#{MOUNTPOINT}/?|/|", f)
70
- raise "System exec sed"
68
+ Dir.glob("#{MOUNTPOINT}/etc/zfs/zfs-list.cache/*").each do |f|
69
+ unless system('sed', '-Ei', "s|#{MOUNTPOINT}/?|/|", f)
70
+ raise 'System exec sed'
71
71
  end
72
- }
72
+ end
73
73
  end
74
74
 
75
75
  def hostid
76
- command "zgenhostid $(hostid)"
76
+ command 'zgenhostid $(hostid)'
77
77
  end
78
78
  end
79
79
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Getch
2
4
  module FileSystem
3
5
  module Zfs
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Getch
2
4
  module FileSystem
3
5
  end
@@ -1,19 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'fileutils'
2
4
 
3
5
  module Getch
4
6
  module Gentoo
5
7
  class Boot
6
8
  def initialize
7
- @disk = Getch::OPTIONS[:boot_disk] ?
8
- Getch::OPTIONS[:boot_disk] :
9
- Getch::OPTIONS[:disk]
10
9
  @user = Getch::OPTIONS[:username]
11
- @class_fs = Getch::select_fs
12
- @config = @class_fs::Config.new
13
10
  end
14
11
 
15
12
  def start
16
- @config.fstab
17
13
  bootloader
18
14
  password
19
15
  permission
@@ -21,63 +17,22 @@ module Getch
21
17
  end
22
18
 
23
19
  def bootloader
24
- # Ensure than systemd is build with all our flags
25
- Getch::Emerge.new("@world").pkg!
26
-
27
- if Helpers::efi?
28
- bootctl
29
- else
30
- grub
31
- end
32
- end
33
-
34
- # bootctl is alrealy installed with the stage3-amd64-systemd
35
- def bootctl
36
- bootctl_dep
37
- puts "Configuring systemd-boot."
38
- # ref: https://forums.gentoo.org/viewtopic-p-8118822.html
39
- esp = '/efi'
40
- Getch::Chroot.new("bootctl --path #{esp} install").run!
41
- datas_loader = [
42
- 'default gentoo',
43
- 'timeout 3',
44
- 'editor 0'
45
- ]
46
- @config.systemd_boot
47
- File.write("#{MOUNTPOINT}/#{esp}/loader/loader.conf", datas_loader.join("\n"))
48
-
49
- FileUtils.cp("#{MOUNTPOINT}/usr/src/linux/arch/x86/boot/bzImage", "#{MOUNTPOINT}/#{esp}/vmlinuz", preserve: true)
50
-
51
- initramfs = Dir.glob("#{MOUNTPOINT}/boot/initramfs-*.img")
52
- FileUtils.cp("#{initramfs[0]}", "#{MOUNTPOINT}/#{esp}/initramfs", preserve: true) if initramfs != []
53
-
54
- Getch::Chroot.new("bootctl --path #{esp} update").run!
55
- end
56
-
57
- def bootctl_dep
58
- puts 'Installing systemd-boot...'
59
- Getch::Emerge.new("efivar").pkg!
60
- end
61
-
62
- def grub
63
- puts 'Installing GRUB...'
64
- Getch::Emerge.new("sys-boot/grub:2").pkg!
65
- @config.grub
66
- Getch::Chroot.new("grub-install /dev/#{@disk}").run!
67
- Getch::Chroot.new("grub-mkconfig -o /boot/grub/grub.cfg").run!
20
+ # Ensure all packages are build
21
+ Getch::Emerge.new('@world').pkg!
22
+ bootloader = Getch::Gentoo::Bootloader.new
23
+ bootloader.setup
24
+ bootloader.update
68
25
  end
69
26
 
70
27
  def password
71
28
  puts 'Password for root'
72
- cmd = "chroot #{MOUNTPOINT} /bin/bash -c \"source /etc/profile && passwd\""
73
- system(cmd)
74
- if @user
75
- puts "Creating user #{@user}"
76
- Getch::Chroot.new("useradd -m -G users,wheel,audio,video #{@user}").run!
77
- puts "Password for your user #{@user}"
78
- cmd = "chroot #{MOUNTPOINT} /bin/bash -c \"source /etc/profile && passwd #{@user}\""
79
- system(cmd)
80
- end
29
+ chroot "passwd"
30
+ return unless @user
31
+
32
+ puts "Creating user #{@user}"
33
+ Getch::Chroot.new("useradd -m -G users,wheel,audio,video #{@user}").run!
34
+ puts "Password for your user #{@user}"
35
+ chroot "passwd #{@user}"
81
36
  end
82
37
 
83
38
  private
@@ -90,25 +45,19 @@ module Getch
90
45
  end
91
46
 
92
47
  def the_end
93
- #Helpers::exec_or_die("umount -l /mnt/gentoo/dev{/shm,/pts,}")
94
- #Helpers::exec_or_die("umount -R #{MOUNTPOINT}")
95
48
  puts
96
- puts "getch has finish, before reboot, you can:"
49
+ puts 'getch has finish, before reboot, you can:'
97
50
  puts " + Chroot on your system with: chroot #{MOUNTPOINT} /bin/bash"
98
- puts " + Install more packages like networkmanager or emacs"
51
+ puts ' + Install more packages like networkmanager or emacs'
99
52
  puts
100
- puts " + Add more modules for your kernel (graphic, wifi card) and recompile it with:"
101
- puts " genkernel --kernel-config=/usr/src/linux/.config all "
53
+ puts ' + Add more modules for your kernel (graphic, wifi card) and recompile it with:'
54
+ puts ' genkernel --kernel-config=/usr/src/linux/.config all '
102
55
  puts
103
- puts "Reboot the system when you have done !"
56
+ puts 'Reboot the system when you have done !'
104
57
  end
105
58
 
106
- def exec_chroot(cmd)
107
- script = "chroot #{MOUNTPOINT} /bin/bash -c \"
108
- source /etc/profile
109
- #{cmd}
110
- \""
111
- Getch::Command.new(script).run!
59
+ def chroot(cmd)
60
+ system('chroot', MOUNTPOINT, '/bin/bash', '-c', cmd)
112
61
  end
113
62
  end
114
63
  end
@@ -0,0 +1,68 @@
1
+ # frozen_strin_literal: true
2
+
3
+ module Getch
4
+ module Gentoo
5
+ class Bootloader
6
+ def initialize
7
+ @pkgs = []
8
+ @class_fs = Getch.select_fs
9
+ @config = @class_fs::Config.new
10
+ @disk = Getch::OPTIONS[:boot_disk] ?
11
+ Getch::OPTIONS[:boot_disk] :
12
+ Getch::OPTIONS[:disk]
13
+ @esp = '/efi'
14
+ end
15
+
16
+ def start
17
+ @config.fstab
18
+ config_useflag
19
+ dependencies
20
+ install
21
+ @config.cmdline
22
+ end
23
+
24
+ def config_useflag
25
+ end
26
+
27
+ # Dracut is used by sys-kernel/gentoo-kernel
28
+ def dependencies
29
+ @pkgs << 'app-shells/dash'
30
+ @pkgs << 'sys-kernel/dracut'
31
+ if Helpers.efi?
32
+ @pkgs << 'efivar'
33
+ @pkgs << 'sys-kernel/installkernel-systemd-boot'
34
+ else
35
+ @pkgs << 'sys-boot/grub:2'
36
+ @pkgs << 'sys-kernel/installkernel-gentoo' # for Grub
37
+ end
38
+ end
39
+
40
+ def install
41
+ all_pkgs = @pkgs.join(' ')
42
+ Getch::Emerge.new(all_pkgs).pkg!
43
+ end
44
+
45
+ def setup
46
+ if Helpers.efi?
47
+ Getch::Chroot.new("bootctl --path #{@esp} install").run!
48
+ else
49
+ Getch::Chroot.new("grub-install /dev/#{@disk}").run!
50
+ end
51
+ end
52
+
53
+ def update
54
+ Getch::Emerge.new('--config sys-kernel/gentoo-kernel').pkg!
55
+ if Helpers.efi?
56
+ puts ' => Updating systemd-boot...'
57
+ Getch::Chroot.new("bootctl --path #{@esp} update").run!
58
+ else
59
+ puts ' => Updating grub...'
60
+ Getch::Chroot.new('grub-mkconfig -o /boot/grub/grub.cfg').run!
61
+ end
62
+ end
63
+
64
+ def config
65
+ end
66
+ end
67
+ end
68
+ end
@@ -1,75 +1,68 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Getch
2
4
  module Gentoo
3
5
  class Chroot
4
6
  def initialize
5
- @state = Getch::States.new()
6
7
  @pkgs = []
7
8
  mount
8
9
  end
9
10
 
10
11
  def cpuflags
11
- Getch::Emerge.new("app-portage/cpuid2cpuflags").pkg!
12
+ Getch::Emerge.new('app-portage/cpuid2cpuflags').pkg!
12
13
  cpuflags = `chroot #{MOUNTPOINT} /bin/bash -c "source /etc/profile; cpuid2cpuflags"`.chomp
13
14
  File.write("#{MOUNTPOINT}/etc/portage/package.use/00cpuflags", "*/* #{cpuflags}")
14
15
  end
15
16
 
16
17
  def update
17
18
  return if STATES[:gentoo_update]
18
- puts "Downloading the last ebuilds for Gentoo..."
19
- Helpers::create_dir("#{MOUNTPOINT}/var/db/repos/gentoo")
20
- cmd = "emaint sync --auto"
19
+
20
+ puts 'Downloading the last ebuilds for Gentoo...'
21
+ Helpers.create_dir("#{MOUNTPOINT}/var/db/repos/gentoo")
22
+ cmd = 'emaint sync --auto'
21
23
  exec_chroot(cmd)
22
24
  end
23
25
 
24
26
  def world
25
27
  return if STATES[:gentoo_update]
26
- puts "Update Gentoo world"
27
- Getch::Emerge.new("emerge --update --deep --changed-use --newuse @world").run!
28
- @state.update
28
+
29
+ puts 'Update Gentoo world'
30
+ Getch::Emerge.new('emerge --update --deep --changed-use --newuse @world').run!
29
31
  end
30
32
 
31
33
  def systemd
32
- puts "Updating locale, keymap..."
33
- cmd = "locale-gen; emerge --config sys-libs/timezone-data"
34
+ puts 'Updating locale, keymap...'
35
+ cmd = 'locale-gen; emerge --config sys-libs/timezone-data'
34
36
  exec_chroot(cmd)
35
37
  end
36
38
 
37
- def kernel
39
+ def kernel_license
38
40
  return if Dir.exist? "#{MOUNTPOINT}/usr/src/linux"
41
+
39
42
  license = "#{MOUNTPOINT}/etc/portage/package.license"
40
43
  File.write(license, "sys-kernel/linux-firmware linux-fw-redistributable no-source-code\n")
41
- @pkgs << "sys-kernel/gentoo-sources"
42
- end
43
-
44
- def kernel_deps
45
- @pkgs << "sys-apps/kmod"
46
44
  end
47
45
 
48
46
  def install_pkgs
49
- @pkgs << "app-portage/gentoolkit"
50
- @pkgs << "app-admin/sudo"
51
- @pkgs << "app-editors/vim"
52
- @pkgs << "sys-kernel/linux-firmware"
53
- all_pkgs = @pkgs.join(" ")
47
+ @pkgs << 'app-portage/gentoolkit'
48
+ @pkgs << 'app-admin/sudo'
49
+ @pkgs << 'app-editors/vim'
50
+ @pkgs << 'net-firewall/iptables'
51
+ @pkgs << 'sys-fs/dosftools' if Helpers.efi?
52
+ all_pkgs = @pkgs.join(' ')
54
53
  puts "Installing #{all_pkgs}..."
55
54
  Getch::Emerge.new(all_pkgs).pkg!
56
55
  end
57
56
 
58
- # create a symbolic link for /usr/src/linux
59
- def kernel_link
60
- cmd = "eselect kernel set 1"
61
- exec_chroot(cmd)
62
- end
63
-
64
57
  private
65
58
 
66
59
  def mount
67
- puts "Populate /proc, /sys and /dev."
68
- Helpers::exec_or_die("mount --types proc /proc \"#{MOUNTPOINT}/proc\"")
69
- Helpers::exec_or_die("mount --rbind /sys \"#{MOUNTPOINT}/sys\"")
70
- Helpers::exec_or_die("mount --make-rslave \"#{MOUNTPOINT}/sys\"")
71
- Helpers::exec_or_die("mount --rbind /dev \"#{MOUNTPOINT}/dev\"")
72
- Helpers::exec_or_die("mount --make-rslave \"#{MOUNTPOINT}/dev\"")
60
+ puts 'Populate /proc, /sys and /dev.'
61
+ Helpers.exec_or_die("mount --types proc /proc \"#{MOUNTPOINT}/proc\"")
62
+ Helpers.exec_or_die("mount --rbind /sys \"#{MOUNTPOINT}/sys\"")
63
+ Helpers.exec_or_die("mount --make-rslave \"#{MOUNTPOINT}/sys\"")
64
+ Helpers.exec_or_die("mount --rbind /dev \"#{MOUNTPOINT}/dev\"")
65
+ Helpers.exec_or_die("mount --make-rslave \"#{MOUNTPOINT}/dev\"")
73
66
  # Maybe add /dev/shm like describe here:
74
67
  # https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Base
75
68
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'fileutils'
2
4
  require 'tempfile'
3
5
  require 'securerandom'
@@ -11,12 +13,13 @@ module Getch
11
13
  end
12
14
 
13
15
  def portage
14
- grub_pc = Helpers::efi? ? '' : 'GRUB_PLATFORMS="pc"'
16
+ grub_pc = Helpers.efi? ? '' : 'GRUB_PLATFORMS="pc"'
15
17
  nproc = `nproc`.chomp()
16
18
 
17
19
  # Add cpu name
18
20
  cpu=`chroot #{MOUNTPOINT} /bin/bash -c \"source /etc/profile ; gcc -c -Q -march=native --help=target | grep march\" | awk '{print $2}' | head -1`.chomp
19
- raise "Error, no cpu found" if ! cpu or cpu == ""
21
+ raise 'Error, no cpu found' unless cpu || cpu == ''
22
+
20
23
  @log.debug "CPU found ==> #{cpu}"
21
24
 
22
25
  tmp = Tempfile.new('make.conf')
@@ -29,7 +32,7 @@ module Getch
29
32
  end
30
33
  }
31
34
 
32
- FileUtils.copy_file(tmp, @make, preserve = true)
35
+ FileUtils.copy_file(tmp, @make)
33
36
 
34
37
  # Add the rest
35
38
  data = [
@@ -37,16 +40,17 @@ module Getch
37
40
  "MAKEOPTS=\"-j#{nproc}\"",
38
41
  'ACCEPT_KEYWORDS="amd64"',
39
42
  'INPUT_DEVICES="libinput"',
43
+ 'USE="${USE} audit"',
40
44
  grub_pc
41
45
  ]
42
- File.write(@make, data.join("\n"), mode: "a")
46
+ File.write(@make, data.join("\n"), mode: 'a')
43
47
  end
44
48
 
45
49
  # Write a repos.conf/gentoo.conf with the gpg verification
46
50
  def repo
47
51
  src = "#{MOUNTPOINT}/usr/share/portage/config/repos.conf"
48
52
  dest = "#{MOUNTPOINT}/etc/portage/repos.conf"
49
- FileUtils.mkdir dest, mode: 0644 if ! Dir.exist?(dest)
53
+ FileUtils.mkdir dest, mode: 0644 unless Dir.exist?(dest)
50
54
  tmp = Tempfile.new('gentoo.conf')
51
55
  line_count = 0
52
56
 
@@ -60,20 +64,20 @@ module Getch
60
64
  line_count += 1
61
65
  }
62
66
 
63
- FileUtils.copy_file(tmp, "#{dest}/gentoo.conf", preserve = true)
67
+ FileUtils.copy_file(tmp, "#{dest}/gentoo.conf")
64
68
  end
65
69
 
66
70
  def network
67
71
  src = '/etc/resolv.conf'
68
72
  dest = "#{MOUNTPOINT}/etc/resolv.conf"
69
- FileUtils.copy_file(src, dest, preserve = true)
73
+ FileUtils.copy_file(src, dest)
70
74
  end
71
75
 
72
76
  def systemd
73
77
  control_options
74
- File.write("#{MOUNTPOINT}/etc/locale.gen", @utf8)
75
- File.write("#{MOUNTPOINT}/etc/locale.conf", "LANG=#{@lang}\n")
76
- File.write("#{MOUNTPOINT}/etc/locale.conf", 'LC_COLLATE=C', mode: 'a')
78
+ Helpers.echo "#{MOUNTPOINT}/etc/locale.gen", @utf8
79
+ Helpers.echo "#{MOUNTPOINT}/etc/locale.conf", "LANG=#{@lang}"
80
+ Helpers.echo_a "#{MOUNTPOINT}/etc/locale.conf", 'LC_COLLATE=C'
77
81
  File.write("#{MOUNTPOINT}/etc/timezone", "#{Getch::OPTIONS[:zoneinfo]}\n")
78
82
  File.write("#{MOUNTPOINT}/etc/vconsole.conf", "KEYMAP=#{Getch::OPTIONS[:keymap]}\n")
79
83
  end
@@ -85,19 +89,19 @@ module Getch
85
89
 
86
90
  def portage_fs
87
91
  portage = "#{MOUNTPOINT}/etc/portage"
88
- Helpers::create_dir("#{portage}/package.use")
89
- Helpers::create_dir("#{portage}/package.accept_keywords")
90
- Helpers::create_dir("#{portage}/package.unmask")
92
+ Helpers.mkdir("#{portage}/package.use")
93
+ Helpers.mkdir("#{portage}/package.accept_keywords")
94
+ Helpers.mkdir("#{portage}/package.unmask")
91
95
 
92
- Helpers::add_file("#{portage}/package.use/zzz_via_autounmask")
93
- Helpers::add_file("#{portage}/package.accept_keywords/zzz_via_autounmask")
94
- Helpers::add_file("#{portage}/package.unmask/zzz_via_autounmask")
96
+ Helpers.add_file("#{portage}/package.use/zzz_via_autounmask")
97
+ Helpers.add_file("#{portage}/package.accept_keywords/zzz_via_autounmask")
98
+ Helpers.add_file("#{portage}/package.unmask/zzz_via_autounmask")
95
99
  end
96
100
 
101
+ # https://wiki.gentoo.org/wiki/Signed_kernel_module_support
97
102
  def portage_bashrc
98
103
  conf = "#{MOUNTPOINT}/etc/portage/bashrc"
99
104
  content = %q{
100
- # https://wiki.gentoo.org/wiki/Signed_kernel_module_support
101
105
  function pre_pkg_preinst() {
102
106
  # This hook signs any out-of-tree kernel modules.
103
107
  if [[ "$(type -t linux-mod_pkg_preinst)" != "function" ]]; then
@@ -122,9 +126,9 @@ function pre_pkg_preinst() {
122
126
  }
123
127
  }
124
128
 
125
- f = File.new(conf, "w")
129
+ f = File.new(conf, 'w')
126
130
  f.write("#{content}\n")
127
- f.chmod(0644)
131
+ f.chmod(0700)
128
132
  f.close
129
133
  end
130
134
 
@@ -141,22 +145,22 @@ function pre_pkg_preinst() {
141
145
  Dir.glob("#{MOUNTPOINT}/usr/share/keymaps/**/#{keys}.map.gz") { |f|
142
146
  @keymap = f
143
147
  }
144
- raise ArgumentError, "No keymap #{@keymap} found" if ! @keymap
148
+ raise ArgumentError, "No keymap #{@keymap} found" unless @keymap
145
149
  end
146
150
 
147
151
  def search_zone(zone)
148
- if !File.exist?("#{MOUNTPOINT}/usr/share/zoneinfo/#{zone}")
152
+ unless File.exist? "#{MOUNTPOINT}/usr/share/zoneinfo/#{zone}"
149
153
  raise ArgumentError, "Zoneinfo #{zone} doesn\'t exist."
150
154
  end
151
155
  end
152
156
 
153
157
  def search_utf8(lang)
154
158
  @utf8, @lang = nil, nil
155
- File.open("#{MOUNTPOINT}/usr/share/i18n/SUPPORTED").each { |l|
156
- @utf8 = $~[0] if l.match(/^#{lang}[. ]+[utf\-8 ]+/i)
157
- @lang = $~[0] if l.match(/^#{lang}[. ]+utf\-8/i)
158
- }
159
- raise ArgumentError, "Lang #{lang} no found" if ! @utf8
159
+ File.open("#{MOUNTPOINT}/usr/share/i18n/SUPPORTED").each do |l|
160
+ @utf8 = l if l.match(/^#{lang}[. ]+utf-8 /i)
161
+ @lang = $~[0] if l.match(/^#{lang}[. ]+utf-8/i)
162
+ end
163
+ raise ArgumentError, "Lang #{lang} no found" unless @utf8
160
164
  end
161
165
  end
162
166
  end