Unverified Commit 83adf987 authored by Batuhan Osman Taşkaya's avatar Batuhan Osman Taşkaya Committed by GitHub

Indentetion

parent fa828792
......@@ -10,189 +10,189 @@ MKINITCPIOCONF="/etc/mkinitcpio.conf"
check_system() {
local missing_file=""
[ ! -e "${GRUBDEFAULT}" ] && missing_file="${GRUBDEFAULT}"
[ ! -e "${UPDATEGRUBCMD}" ] && missing_file="${UPDATEGRUBCMD}"
[ ! -e "${MKINITCPIOCONF}" ] && missing_file="${MKINITCPIOCONF}"
if [ "${missing_file}" != "" ]; then
echo "warning: '${missing_file}' does not exists! Abording..."
echo ""
echo "note: mhwd-fb couldn't find grub installed on your system. mhwd-fb sets kernel arguments to tell the mhwd-fb initramfs hook which framebuffer should be loaded. Check the wiki how to add this kernel arguments manually."
exit 1
fi
# Check if mhwd-fb hook is enabled
. "${MKINITCPIOCONF}"
local found="";
for arg in ${HOOKS}
do
if [ "${arg}" == "mhwd-fb" ]; then
found="true"
break
fi
done
if [ "${found}" != "true" ]; then
echo "error: mhwd-fb hook isn't enabled! Abording..."
exit 1
fi
local missing_file=""
[ ! -e "${GRUBDEFAULT}" ] && missing_file="${GRUBDEFAULT}"
[ ! -e "${UPDATEGRUBCMD}" ] && missing_file="${UPDATEGRUBCMD}"
[ ! -e "${MKINITCPIOCONF}" ] && missing_file="${MKINITCPIOCONF}"
if [ "${missing_file}" != "" ]; then
echo "warning: '${missing_file}' does not exists! Abording..."
echo ""
echo "note: mhwd-fb couldn't find grub installed on your system. mhwd-fb sets kernel arguments to tell the mhwd-fb initramfs hook which framebuffer should be loaded. Check the wiki how to add this kernel arguments manually."
exit 1
fi
# Check if mhwd-fb hook is enabled
. "${MKINITCPIOCONF}"
local found="";
for arg in ${HOOKS}
do
if [ "${arg}" == "mhwd-fb" ]; then
found="true"
break
fi
done
if [ "${found}" != "true" ]; then
echo "error: mhwd-fb hook isn't enabled! Abording..."
exit 1
fi
}
get_framebuffer_resolution() {
# Find fitting resolution if not set
[ "${FBRESOLUTION}" == "" ] && FBRESOLUTION="$(LANG=C LC_MESSAGES=C xrandr | grep \* | cut -d' ' -f4 | head -n 1)-32"
[ "${FBRESOLUTION}" == "" ] && FBRESOLUTION="$(LANG=C LC_MESSAGES=C hwinfo --framebuffer | grep -w 'Mode' | cut -d: -f2 | sed 's/^ *//g' | sed 's/ .*//g' | sort -nr | head -n 1)-32"
# Check if resolution is valid
if ! [[ "$(echo "${FBRESOLUTION}" | sed 's/-//' | sed 's/x//')" =~ ^[0-9]+$ ]] || [[ "${FBRESOLUTION}" != *[0-9]"x"[0-9]* ]]; then
echo "error: '${FBRESOLUTION}' isn't a valid framebuffer resolution!"
exit 1
fi
# Find fitting resolution if not set
[ "${FBRESOLUTION}" == "" ] && FBRESOLUTION="$(LANG=C LC_MESSAGES=C xrandr | grep \* | cut -d' ' -f4 | head -n 1)-32"
[ "${FBRESOLUTION}" == "" ] && FBRESOLUTION="$(LANG=C LC_MESSAGES=C hwinfo --framebuffer | grep -w 'Mode' | cut -d: -f2 | sed 's/^ *//g' | sed 's/ .*//g' | sort -nr | head -n 1)-32"
# Check if resolution is valid
if ! [[ "$(echo "${FBRESOLUTION}" | sed 's/-//' | sed 's/x//')" =~ ^[0-9]+$ ]] || [[ "${FBRESOLUTION}" != *[0-9]"x"[0-9]* ]]; then
echo "error: '${FBRESOLUTION}' isn't a valid framebuffer resolution!"
exit 1
fi
}
# param 1: "kms", "uvesafb" or "none"
set_framebuffer() {
echo ":: setup mhwd-fb"
. "${GRUBDEFAULT}"
local NEW_GRUB_CMDLINE_LINUX=""
for arg in ${GRUB_CMDLINE_LINUX}
do
if [[ "${arg}" != "mhwdfb="* ]]; then
NEW_GRUB_CMDLINE_LINUX="${NEW_GRUB_CMDLINE_LINUX}${arg} "
fi
done
if [ "$1" == "kms" ]; then
NEW_GRUB_CMDLINE_LINUX="${NEW_GRUB_CMDLINE_LINUX}mhwdfb=kms"
echo " using kms framebuffer"
# Enable GRUB_GFXPAYLOAD_LINUX
sed -i '/#[]*GRUB_GFXPAYLOAD_LINUX[ ]*=.*/ s/^.//' "${GRUBDEFAULT}"
elif [ "$1" == "uvesafb" ]; then
get_framebuffer_resolution
if [ ${FBRESOLUTION} == "" ]; then
NEW_GRUB_CMDLINE_LINUX="${NEW_GRUB_CMDLINE_LINUX}mhwdfb=uvesafb"
echo " using uvesafb framebuffer"
else
NEW_GRUB_CMDLINE_LINUX="${NEW_GRUB_CMDLINE_LINUX}mhwdfb=uvesafb:${FBRESOLUTION}"
echo " using uvesafb framebuffer with resolution: ${FBRESOLUTION}"
fi
# Disable GRUB_GFXPAYLOAD_LINUX
sed -i "/#/!s|GRUB_GFXPAYLOAD_LINUX[ ]*=.*|#&|g" "${GRUBDEFAULT}"
elif [ "$1" == "none" ]; then
echo " disabling mhwd-fb framebuffer option"
# Enable GRUB_GFXPAYLOAD_LINUX
sed -i '/#[]*GRUB_GFXPAYLOAD_LINUX[ ]*=.*/ s/^.//' "${GRUBDEFAULT}"
else
echo "error: invalid function argument!"
exit 1
fi
# Adjust grub default file
sed -i "/#/!s|GRUB_CMDLINE_LINUX[ ]*=.*|GRUB_CMDLINE_LINUX=\"${NEW_GRUB_CMDLINE_LINUX}\"|g" "${GRUBDEFAULT}"
# Update grub configuration file
echo ""
echo ":: update-grub output:"
${UPDATEGRUBCMD}
if [ $? != 0 ]; then
echo "error: grub-update failed!"
exit 1
fi
echo ":: setup mhwd-fb"
. "${GRUBDEFAULT}"
local NEW_GRUB_CMDLINE_LINUX=""
for arg in ${GRUB_CMDLINE_LINUX}
do
if [[ "${arg}" != "mhwdfb="* ]]; then
NEW_GRUB_CMDLINE_LINUX="${NEW_GRUB_CMDLINE_LINUX}${arg} "
fi
done
if [ "$1" == "kms" ]; then
NEW_GRUB_CMDLINE_LINUX="${NEW_GRUB_CMDLINE_LINUX}mhwdfb=kms"
echo " using kms framebuffer"
# Enable GRUB_GFXPAYLOAD_LINUX
sed -i '/#[]*GRUB_GFXPAYLOAD_LINUX[ ]*=.*/ s/^.//' "${GRUBDEFAULT}"
elif [ "$1" == "uvesafb" ]; then
get_framebuffer_resolution
if [ ${FBRESOLUTION} == "" ]; then
NEW_GRUB_CMDLINE_LINUX="${NEW_GRUB_CMDLINE_LINUX}mhwdfb=uvesafb"
echo " using uvesafb framebuffer"
else
NEW_GRUB_CMDLINE_LINUX="${NEW_GRUB_CMDLINE_LINUX}mhwdfb=uvesafb:${FBRESOLUTION}"
echo " using uvesafb framebuffer with resolution: ${FBRESOLUTION}"
fi
# Disable GRUB_GFXPAYLOAD_LINUX
sed -i "/#/!s|GRUB_GFXPAYLOAD_LINUX[ ]*=.*|#&|g" "${GRUBDEFAULT}"
elif [ "$1" == "none" ]; then
echo " disabling mhwd-fb framebuffer option"
# Enable GRUB_GFXPAYLOAD_LINUX
sed -i '/#[]*GRUB_GFXPAYLOAD_LINUX[ ]*=.*/ s/^.//' "${GRUBDEFAULT}"
else
echo "error: invalid function argument!"
exit 1
fi
# Adjust grub default file
sed -i "/#/!s|GRUB_CMDLINE_LINUX[ ]*=.*|GRUB_CMDLINE_LINUX=\"${NEW_GRUB_CMDLINE_LINUX}\"|g" "${GRUBDEFAULT}"
# Update grub configuration file
echo ""
echo ":: update-grub output:"
${UPDATEGRUBCMD}
if [ $? != 0 ]; then
echo "error: grub-update failed!"
exit 1
fi
}
print_status() {
. "${GRUBDEFAULT}"
local FB_DRIVER=""
local FB_RESOLUTION=""
for arg in ${GRUB_CMDLINE_LINUX}
do
if [[ "${arg}" == "mhwdfb="* ]]; then
arg="$(echo "${arg}" | cut -d= -f2)"
FB_DRIVER="$(echo "${arg}" | cut -d: -f1)"
FB_RESOLUTION="$(echo "${arg}:" | cut -d: -f2)" # additional ':' if f2 isn't set -> empty string
break;
fi
done
if [ "${FB_DRIVER}" != "kms" ] && [ "${FB_DRIVER}" != "uvesafb" ] && [ "${FB_DRIVER}" != "" ]; then
echo "warning: set mhwd-fb driver is invalid: '${FB_DRIVER}'"
exit 1
elif [ "${FB_DRIVER}" == "" ]; then
FB_DRIVER="disabled"
FB_RESOLUTION="-"
else
[ "${FB_RESOLUTION}" == "" ] && FB_RESOLUTION="auto"
fi
echo ":: current mhwd-fb state"
echo -e " framebuffer:\t${FB_DRIVER}"
echo -e " resolution:\t${FB_RESOLUTION}"
. "${GRUBDEFAULT}"
local FB_DRIVER=""
local FB_RESOLUTION=""
for arg in ${GRUB_CMDLINE_LINUX}
do
if [[ "${arg}" == "mhwdfb="* ]]; then
arg="$(echo "${arg}" | cut -d= -f2)"
FB_DRIVER="$(echo "${arg}" | cut -d: -f1)"
FB_RESOLUTION="$(echo "${arg}:" | cut -d: -f2)" # additional ':' if f2 isn't set -> empty string
break;
fi
done
if [ "${FB_DRIVER}" != "kms" ] && [ "${FB_DRIVER}" != "uvesafb" ] && [ "${FB_DRIVER}" != "" ]; then
echo "warning: set mhwd-fb driver is invalid: '${FB_DRIVER}'"
exit 1
elif [ "${FB_DRIVER}" == "" ]; then
FB_DRIVER="disabled"
FB_RESOLUTION="-"
else
[ "${FB_RESOLUTION}" == "" ] && FB_RESOLUTION="auto"
fi
echo ":: current mhwd-fb state"
echo -e " framebuffer:\t${FB_DRIVER}"
echo -e " resolution:\t${FB_RESOLUTION}"
}
print_help() {
echo "mhwd-fb [OPTION] [...]"
echo ""
echo " --help show help"
echo " --status show current status"
echo " --setfb [kms/uvesafb/none] set framebuffer"
echo " --setres [resolution] set uvesafb resolution. ex.: 1440x900 or 1440x900-32"
echo ""
echo "note: mhwd-fb sets kernel arguments to tell the mhwd-fb initramfs hook which framebuffer should be loaded. mhwd-fb requires an installed grub which is configured to this system to work. Otherwise check the wiki how to add mhwd-fb kernel arguments manually."
echo ""
echo "mhwd-fb [OPTION] [...]"
echo ""
echo " --help show help"
echo " --status show current status"
echo " --setfb [kms/uvesafb/none] set framebuffer"
echo " --setres [resolution] set uvesafb resolution. ex.: 1440x900 or 1440x900-32"
echo ""
echo "note: mhwd-fb sets kernel arguments to tell the mhwd-fb initramfs hook which framebuffer should be loaded. mhwd-fb requires an installed grub which is configured to this system to work. Otherwise check the wiki how to add mhwd-fb kernel arguments manually."
echo ""
}
if [ "${PARAM}" -lt 1 ]; then
print_status
exit 0
print_status
exit 0
fi
for (( I=1; $I <= $PARAM; I++ ))
do
case "$1" in
--help)
print_help
exit 0
;;
--setfb)
shift
FBARG="$1"
;;
--setres)
shift
FBRESOLUTION="$1"
;;
--status)
print_status
exit 0
;;
"") ;;
*)
echo "error: invalid argument: $1"
echo ""
print_help
exit 1
;;
esac
shift
case "$1" in
--help)
print_help
exit 0
;;
--setfb)
shift
FBARG="$1"
;;
--setres)
shift
FBRESOLUTION="$1"
;;
--status)
print_status
exit 0
;;
"") ;;
*)
echo "error: invalid argument: $1"
echo ""
print_help
exit 1
;;
esac
shift
done
......@@ -207,12 +207,12 @@ check_system
# Set framebuffer
if [ "${FBARG}" != "" ]; then
if [ "${FBARG}" != "kms" ] && [ "${FBARG}" != "uvesafb" ] && [ "${FBARG}" != "none" ]; then
echo "error: invalid argument '${FBARG}'"
exit 1
fi
if [ "${FBARG}" != "kms" ] && [ "${FBARG}" != "uvesafb" ] && [ "${FBARG}" != "none" ]; then
echo "error: invalid argument '${FBARG}'"
exit 1
fi
set_framebuffer "${FBARG}"
set_framebuffer "${FBARG}"
fi
exit 0
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment