forked from Qortal/Brooklyn
61 lines
2.5 KiB
Python
61 lines
2.5 KiB
Python
#!/usr/bin/env python3
|
|
#
|
|
# SPDX-FileCopyrightText: 2021 Carson Black <uhhadd@gmail.com>
|
|
#
|
|
# SPDX-License-Identifier: LGPL-2.0-or-later
|
|
#
|
|
|
|
# 5.21.0 botched the migration by accidentally turning enabled to disabled and disabled to enabled.
|
|
# We have two choices here: we can either break key repeat for users that manually intervened
|
|
# and enabled key repeat by inverting the value, or we can enable key repeat for users that didn't
|
|
# have it enabled and fix users that had their key repeat disabled. Only one of those sentences
|
|
# contains the word "break" so we go with the one without the word "break" ;)
|
|
# Enabling key repeat for users who disabled it is less breaking than disabling key repeat for
|
|
# users who enabled it.
|
|
|
|
#
|
|
# And that brings us to the code.
|
|
#
|
|
# We'll need to import sys in order to read stdin, which is how we receive
|
|
# the old input file to look for it.
|
|
#
|
|
import sys
|
|
|
|
#
|
|
# After that, we'll need to declare ourselves a variable to hold the contents
|
|
# of the config file we read in from stdin.
|
|
#
|
|
|
|
content: str = sys.stdin.read()
|
|
|
|
#
|
|
# That brings us to checking for the presence of the old script's effects on the underlying system:
|
|
# kconfig files are annotated with a section containing all of the config scripts that have ran
|
|
# on them.
|
|
#
|
|
# They're of the form filename.upd:migration_name.
|
|
#
|
|
if "kcminputrc_repeat.upd:kcminputrc_migrate_repeat_value" in content:
|
|
#
|
|
# Now we check for the presence of a disabled key repeat in the config file contents. For 5.21.0, this
|
|
# was changed from a 0-1-2 ternary to an English-language nothing/repeat/accent.
|
|
# The config script for migrating ternary to English-language is why we're in this
|
|
# mess in the first place. We migrated 0 (enabled) -> nothing and 2 (disabled) -> repeat.
|
|
#
|
|
if "KeyRepeat=nothing" in content:
|
|
#
|
|
# Now we print the command instructing the kconfig updater to delete this field.
|
|
# A deleted field essentially means "use the default" which in this case means
|
|
# "enable key repeat." We delete instead of reassigning to "repeat" because
|
|
# we would prefer to have a deleted field act as our "default" value.
|
|
#
|
|
print("# DELETE [Keyboard]KeyRepeat")
|
|
|
|
#
|
|
# Since we created the Tmp group as a temporary way of conveying to this script what migrations
|
|
# were applied to the config file, we want to clean it up, as it serves no other purpose.
|
|
#
|
|
# We instruct KConfig to delete the Tmp group in the config file.
|
|
#
|
|
print("# DELETEGROUP Tmp")
|