getch 0.1.6 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
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