Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- OrderCards() {
- Abase="/etc/modprobe.d/alsa-base.conf"
- AudioRules="/etc/udev/rules.d/85-linuxmce-audio.rules"
- CardOrder=$(cat /proc/asound/modules | awk '{print $2}')
- CardModules=$(uniq <<< "$CardOrder")
- NumberCardMods=$(echo "$CardModules" | while read each; do
- echo "$each $(grep "$each" /proc/asound/modules | wc -l)" | sed 's/_/-/g'
- done)
- CardModules=$(sed 's/_/-/g' <<< "$CardModules")
- CurrentAconfig=$(grep "LinuxMCE" -A20 "$Abase" | grep -v "LinuxMCE" | awk '{print $2}')
- if [[ -n "$CurrentAconfig" ]]; then
- # If our module load order does not match our loaded modules, start section fresh.
- if [[ "$CardModules" != "$CurrentAconfig" ]] || [[ $(awk '{print $2}' <<< "$NumberCardMods" | paste -sd+ | bc) -ne $(wc -l <<< "$CardOrder") ]]; then
- sed -i '/.*Added.*LinuxMCE.*/,/.*End.*LinuxMCE.*/d' "$Abase"
- echo "### Added module load order by LinuxMCE ###" >> "$Abase"
- else
- # If they match, leave... our work is done.
- return
- fi
- else
- echo "" >> "$Abase"
- echo "### Added module load order by LinuxMCE ###" >> "$Abase"
- fi
- local ModOrder=$(grep -E "(.*index=[0-9]|.*index=[0-9][0-9])" "$Abase" | sed 's/.*,//g' | sort -n | tail -1)
- if [[ -z "$ModOrder" ]]; then
- ModOrder=0
- else
- # Incriment existing highest module order number
- ((ModOrder++))
- fi
- echo "$NumberCardMods" | awk '{print $1}' | while read EachModule; do
- Acurrent="options ${EachModule} index"
- if [[ -n "$Acurrent" ]]; then
- sed -i "/${Acurrent}=-2*/d;/.*index=${ModOrder}/d" "$Abase"
- fi
- if ! grep -q "${Acurrent}" "$Abase"; then
- EachModuleNumber=$(grep "$EachModule" <<< "$NumberCardMods" | awk '{print $2}')
- if [[ "$EachModuleNumber" -gt "1" ]]; then
- ((EachModuleNumber--))
- ModMax=$(($ModOrder+$EachModuleNumber))
- for ((i="$ModOrder"; i<="$ModMax"; i++)); do
- str="$str$i,"
- done < <(grep PATH /etc/profile)
- ModNumber="${str%,}"
- echo "${Acurrent}=${ModNumber}" >> "$Abase"
- ModOrder=$(sed 's/^.*\(.\)$/\1/' <<< "$ModNumber")
- ((ModOrder++))
- else
- echo "${Acurrent}=${ModOrder}" >> "$Abase"
- ((ModOrder++))
- fi
- fi
- done
- echo "### End add by LinuxMCE ###" >> "$Abase"
- if [[ -f "$AudioRules" ]]; then
- rm "$AudioRules"
- fi
- /usr/pluto/bin/RestartALSA.sh
- CardNumbers=$(cat /proc/asound/modules | awk '{print $1}')
- cat <<EOL> "$AudioRules"
- SUBSYSTEM!="sound", GOTO="linuxmce_audio_end"
- ACTION!="add", GOTO="linuxmce_audio_end"
- EOL
- echo "$CardNumbers" | while read each; do
- DevPath=$(udevadm info -a -p /sys/class/sound/card${each} | grep -wo "/devices.*card${each}")
- echo "DEVPATH==\"${DevPath}\", KERNEL=\"card${each}\"" >> "$AudioRules"
- done
- cat <<EOL>> "$AudioRules"
- LABEL="linuxmce_audio_end"
- EOL
- }
- OrderCards
- if [[ "$CardModules" != "$CurrentAconfig" ]] || [[ $(awk '{print $2}' <<< "$NumberCardMods" | paste -sd+ | bc) -ne $(wc -l <<< "$CardOrder") ]]; then
- OrderCards
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement