Feature: #28 being worked on

This commit is contained in:
Anton Hvornum 2019-11-28 00:10:54 +00:00
parent 59994c1ffd
commit 93fb7f3ee5
1 changed files with 35 additions and 15 deletions

View File

@ -781,6 +781,7 @@ def setup_args_defaults(args, interactive=True):
if not 'password' in args: args['password'] = '0000' # Default disk passord, can be <STDIN> or a fixed string if not 'password' in args: args['password'] = '0000' # Default disk passord, can be <STDIN> or a fixed string
if not 'default' in args: args['default'] = False if not 'default' in args: args['default'] = False
if not 'profile' in args: args['profile'] = None if not 'profile' in args: args['profile'] = None
if not 'skip-encrypt' in args: args['skip-encrypt'] = False
if not 'profiles-path' in args: args['profiles-path'] = profiles_path if not 'profiles-path' in args: args['profiles-path'] = profiles_path
if not 'rerun' in args: args['rerun'] = None if not 'rerun' in args: args['rerun'] = None
if not 'aur-keep' in args: args['aur-keep'] = False if not 'aur-keep' in args: args['aur-keep'] = False
@ -902,7 +903,7 @@ def encrypt_partition(drive, partition, keyfile='/tmp/diskpw', *positionals, **k
return True return True
def mkfs_btrfs(drive='/dev/mapper/luksdev', *positionals, **kwargs): def mkfs_btrfs(drive='/dev/mapper/luksdev', *positionals, **kwargs):
o = b''.join(sys_command('/usr/bin/mkfs.btrfs -f /dev/mapper/luksdev')) o = b''.join(sys_command(f'/usr/bin/mkfs.btrfs -f {drive}'))
if not b'UUID' in o: if not b'UUID' in o:
return False return False
return True return True
@ -915,6 +916,17 @@ def mount_luksdev(where='/dev/mapper/luksdev', to='/mnt', *positionals, **kwargs
o = b''.join(sys_command('/usr/bin/mount /dev/mapper/luksdev /mnt', *positionals, **kwargs)) o = b''.join(sys_command('/usr/bin/mount /dev/mapper/luksdev /mnt', *positionals, **kwargs))
return True return True
def mount_part(drive, partition, mountpoint='/mnt', *positionals, **kwargs):
os.makedirs(mountpoint, exist_ok=True)
#o = b''.join(sys_command('/usr/bin/mount | /usr/bin/grep /mnt/boot', *positionals, **kwargs)) # /dev/dm-0
check_mounted = simple_command(f'/usr/bin/mount | /usr/bin/grep {mountpoint}', *positionals, **kwargs).decode('UTF-8').strip()
if len(check_mounted):
return False
o = b''.join(sys_command(f'/usr/bin/mount {drive}{partition} {mountpoint}', *positionals, **kwargs))
return True
def mount_boot(drive, partition, mountpoint='/mnt/boot', *positionals, **kwargs): def mount_boot(drive, partition, mountpoint='/mnt/boot', *positionals, **kwargs):
os.makedirs('/mnt/boot', exist_ok=True) os.makedirs('/mnt/boot', exist_ok=True)
#o = b''.join(sys_command('/usr/bin/mount | /usr/bin/grep /mnt/boot', *positionals, **kwargs)) # /dev/dm-0 #o = b''.join(sys_command('/usr/bin/mount | /usr/bin/grep /mnt/boot', *positionals, **kwargs)) # /dev/dm-0
@ -926,11 +938,13 @@ def mount_boot(drive, partition, mountpoint='/mnt/boot', *positionals, **kwargs)
o = b''.join(sys_command(f'/usr/bin/mount {drive}{partition} {mountpoint}', *positionals, **kwargs)) o = b''.join(sys_command(f'/usr/bin/mount {drive}{partition} {mountpoint}', *positionals, **kwargs))
return True return True
def mount_mountpoints(drive, bootpartition, mountpoint='/mnt/boot', *positionals, **kwargs): def mount_mountpoints(drive, bootpartition, mountpoint='/mnt', *positionals, **kwargs):
drive = args[drive] drive = args[drive]
bootpartition = args['partitions'][bootpartition] if args['skip-encrypt']:
mount_luksdev(*positionals, **kwargs) mount_part(drive, args['partitions']["2"], mountpoint, *positionals, **kwargs)
mount_boot(drive, bootpartition, mountpoint='/mnt/boot', *positionals, **kwargs) else:
mount_luksdev(*positionals, **kwargs)
mount_boot(drive, args['partitions'][bootpartition], mountpoint=f'{mountpoint}/boot', *positionals, **kwargs)
return True return True
def re_rank_mirrors(top=10, *positionals, **kwargs): def re_rank_mirrors(top=10, *positionals, **kwargs):
@ -1190,20 +1204,26 @@ if __name__ == '__main__':
print(f'[E] Could not setup {args["drive"]}{args["partitions"]["1"]}') print(f'[E] Could not setup {args["drive"]}{args["partitions"]["1"]}')
exit(1) exit(1)
# "--cipher sha512" breaks the shit. if not args['skip-encrypt']:
# TODO: --use-random instead of --use-urandom # "--cipher sha512" breaks the shit.
print(f'[N] Adding encryption to {args["drive"]}{args["partitions"]["2"]}.') # TODO: --use-random instead of --use-urandom
if not encrypt_partition('drive', '2', 'pwfile'): print(f'[N] Adding encryption to {args["drive"]}{args["partitions"]["2"]}.')
print('[E] Failed to setup disk encryption.', o) if not encrypt_partition('drive', '2', 'pwfile'):
exit(1) print('[E] Failed to setup disk encryption.', o)
exit(1)
if not mount_luktsdev('drive', '2', 'pwfile'): if not args['skip-encrypt']:
print('[E] Could not open encrypted device.', o) if not mount_luktsdev('drive', '2', 'pwfile'):
exit(1) print('[E] Could not open encrypted device.', o)
exit(1)
if not args['rerun'] or args['ignore-rerun']: if not args['rerun'] or args['ignore-rerun']:
print(f'[N] Creating btrfs filesystem inside {args["drive"]}{args["partitions"]["2"]}') print(f'[N] Creating btrfs filesystem inside {args["drive"]}{args["partitions"]["2"]}')
if not mkfs_btrfs():
on_part = '/dev/mapper/luksdev'
if args['skip-encrypt']:
on_part = f'{args["drive"]}/{args["partitions"]["2"]}'
if not mkfs_btrfs(on_part):
print('[E] Could not setup btrfs filesystem.', o) print('[E] Could not setup btrfs filesystem.', o)
exit(1) exit(1)