Solved fstab bug
This commit is contained in:
@@ -34,7 +34,7 @@ pkgmgr install setup-hibernate
|
||||
Run the script as root:
|
||||
|
||||
```bash
|
||||
sudo ./hibernate_setup.py [OPTIONS]
|
||||
sudo ./main.py [OPTIONS]
|
||||
```
|
||||
|
||||
### Options
|
||||
@@ -51,19 +51,19 @@ sudo ./hibernate_setup.py [OPTIONS]
|
||||
Create a 40GB swapfile and configure hibernation interactively:
|
||||
|
||||
```bash
|
||||
sudo ./hibernate_setup.py --create-swapfile --swap-size 40
|
||||
sudo ./main.py --create-swapfile --swap-size 40
|
||||
```
|
||||
|
||||
Preview what would happen without actually doing anything:
|
||||
|
||||
```bash
|
||||
sudo ./hibernate_setup.py --create-swapfile --swap-size 40 --preview
|
||||
sudo ./main.py --create-swapfile --swap-size 40 --preview
|
||||
```
|
||||
|
||||
Non-interactive, suitable for automation:
|
||||
|
||||
```bash
|
||||
sudo ./hibernate_setup.py --create-swapfile --swap-size 40 --non-interactive
|
||||
sudo ./main.py --create-swapfile --swap-size 40 --non-interactive
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
18
main.py
18
main.py
@@ -92,13 +92,23 @@ def update_grub(uuid, offset):
|
||||
new_lines = lines[:]
|
||||
for i, line in enumerate(new_lines):
|
||||
if line.startswith("GRUB_CMDLINE_LINUX_DEFAULT"):
|
||||
# Remove existing resume and resume_offset entries
|
||||
line = re.sub(r'resume=UUID=\S+', '', line)
|
||||
line = re.sub(r'resume_offset=\S+', '', line)
|
||||
new = f'resume=UUID={uuid} resume_offset={offset}'
|
||||
if '"' in line:
|
||||
new_lines[i] = re.sub(r'"$', f' {new}"', line)
|
||||
line = re.sub(r'\s+', ' ', line) # Clean up extra spaces
|
||||
|
||||
# Safely inject new resume info inside quotes
|
||||
match = re.match(r'^(GRUB_CMDLINE_LINUX_DEFAULT=)(["\'])(.*?)(["\'])$', line.strip())
|
||||
if match:
|
||||
prefix, quote, content, _ = match.groups()
|
||||
content = content.strip()
|
||||
if not content.endswith(' '):
|
||||
content += ' '
|
||||
content += f'resume=UUID={uuid} resume_offset={offset}'
|
||||
new_lines[i] = f'{prefix}{quote}{content}{quote}\n'
|
||||
else:
|
||||
new_lines[i] = line.strip() + f' {new}\n'
|
||||
# If the line format is unexpected, append the resume parameters at the end
|
||||
new_lines[i] = line.strip() + f' resume=UUID={uuid} resume_offset={offset}\n'
|
||||
break
|
||||
|
||||
if confirm_file_change(GRUB_CONF, new_lines):
|
||||
|
||||
Reference in New Issue
Block a user