first commit

This commit is contained in:
zj
2025-12-28 15:15:19 +08:00
commit 42d43f7342
606 changed files with 14592 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
#!/bin/sh
#
# SPDX-License-Identifier: GPL-3.0-or-later
exec lynx 'https://wiki.archlinux.org/title/Installation_guide'

View File

@@ -0,0 +1,34 @@
#!/bin/bash
#set -e
###############################################################################
# Author : Erik Dubois
# Website : https://www.erikdubois.be
# Website : https://www.arcolinux.info
# Website : https://www.arcolinux.com
# Website : https://www.arcolinuxd.com
# Website : https://www.arcolinuxb.com
# Website : https://www.arcolinuxiso.com
# Website : https://www.arcolinuxforum.com
###############################################################################
#
# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK.
#
###############################################################################
package=sddm
if pacman -Qs $package > /dev/null ; then
ln -sf /usr/lib/systemd/system/sddm.service /etc/systemd/system/display-manager.service
fi
package=gdm
if pacman -Qs $package > /dev/null ; then
ln -sf /usr/lib/systemd/system/gdm.service /etc/systemd/system/display-manager.service
fi
package=lxdm
if pacman -Qs $package > /dev/null ; then
/bin/cp -f /home/smart/lxdm.service /usr/lib/systemd/system/lxdm.service
ln -sf /usr/lib/systemd/system/lxdm.service /etc/systemd/system/display-manager.service
fi
package=lightdm
if pacman -Qs $package > /dev/null ; then
ln -sf /usr/lib/systemd/system/lightdm.service /etc/systemd/system/display-manager.service
fi

View File

@@ -0,0 +1,18 @@
#!/bin/bash
#set -e
###############################################################################
# Author : Erik Dubois
# Website : https://www.erikdubois.be
# Website : https://www.arcolinux.info
# Website : https://www.arcolinux.com
# Website : https://www.arcolinuxd.com
# Website : https://www.arcolinuxb.com
# Website : https://www.arcolinuxiso.com
# Website : https://www.arcolinuxforum.com
###############################################################################
#
# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK.
#
###############################################################################
#if necessary we can use this script too

View File

@@ -0,0 +1,191 @@
#!/bin/bash
#set -e
###############################################################################
# Author : Erik Dubois
# Website : https://www.erikdubois.be
# Website : https://www.arcolinux.info
# Website : https://www.arcolinux.com
# Website : https://www.arcolinuxd.com
# Website : https://www.arcolinuxb.com
# Website : https://www.arcolinuxiso.com
# Website : https://www.arcolinuxforum.com
###############################################################################
#
# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK.
#
###############################################################################
echo "###########################################"
echo "Start ALCI virtual machine check"
echo "###########################################"
result=$(systemd-detect-virt)
while [ -e "/var/lib/pacman/db.lck" ];
do
echo 'Pacman is not ready yet. Will try again in 5 seconds.'
seconds=$(($seconds + 5))
sleep 5
if [[ "$seconds" == "30" ]]; then
echo 'Warning: removing pacman db.lck!'
rm /var/lib/pacman/db.lck
fi
done
echo "You are working on "$result
if [ $result = "oracle" ];
then
#remove vmware
if [ -f /etc/xdg/autostart/vmware-user.desktop ]; then
rm /etc/xdg/autostart/vmware-user.desktop
echo "Removed vmware-user.desktop"
fi
if pacman -Qi open-vm-tools &> /dev/null; then
systemctl disable vmware-vmblock-fuse.service
systemctl disable vmtoolsd.service
echo "Disabled vmtoolsd.service"
pacman -Rns open-vm-tools --noconfirm
echo "Removed open-vm-tools"
fi
if pacman -Qi xf86-video-vmware &> /dev/null; then
pacman -Rns xf86-video-vmware --noconfirm
echo "Removed xf86-video-vmware"
fi
if [ -f /etc/systemd/system/multi-user.target.wants/vmtoolsd.service ]; then
rm /etc/systemd/system/multi-user.target.wants/vmtoolsd.service
echo "Removed vmtoolsd.service if still exists"
fi
#remove qemu
if pacman -Qi qemu-guest-agent &> /dev/null; then
systemctl disable qemu-guest-agent.service
pacman -Rns qemu-guest-agent --noconfirm
echo "Removed qemu-guest-agent"
fi
fi
if [ $result = "kvm" ];
then
#remove vmware
if [ -f /etc/xdg/autostart/vmware-user.desktop ]; then
rm /etc/xdg/autostart/vmware-user.desktop
echo "Removed vmware-user.desktop"
fi
if pacman -Qi open-vm-tools &> /dev/null; then
systemctl disable vmware-vmblock-fuse.service
systemctl disable vmtoolsd.service
echo "Disabled vmtoolsd.service"
pacman -Rns open-vm-tools --noconfirm
echo "Removed open-vm-tools"
fi
if pacman -Qi xf86-video-vmware &> /dev/null; then
pacman -Rns xf86-video-vmware --noconfirm
echo "Removed xf86-video-vmware"
fi
if [ -f /etc/systemd/system/multi-user.target.wants/vmtoolsd.service ]; then
rm /etc/systemd/system/multi-user.target.wants/vmtoolsd.service
echo "Removed vmtoolsd.service if still exists"
fi
#remove virtualbox
if pacman -Qi virtualbox-guest-utils &> /dev/null; then
systemctl disable vboxservice.service
pacman -Rns virtualbox-guest-utils --noconfirm
echo "Removed virtualbox-guest-utils"
fi
if pacman -Qi virtualbox-guest-utils-nox &> /dev/null; then
systemctl disable vboxservice.service
pacman -Rns virtualbox-guest-utils-nox --noconfirm
echo "Removed virtualbox-guest-utils-nox"
fi
fi
if [ $result = "vmware" ];
then
#remove virtualbox
if pacman -Qi virtualbox-guest-utils &> /dev/null; then
systemctl disable vboxservice.service
pacman -Rns virtualbox-guest-utils --noconfirm
echo "Removed virtualbox-guest-utils"
fi
if pacman -Qi virtualbox-guest-utils-nox &> /dev/null; then
systemctl disable vboxservice.service
pacman -Rns virtualbox-guest-utils-nox --noconfirm
echo "Removed virtualbox-guest-utils-nox"
fi
#remove qemu
if pacman -Qi qemu-guest-agent &> /dev/null; then
systemctl disable qemu-guest-agent.service
pacman -Rns qemu-guest-agent --noconfirm
echo "Removed qemu-guest-agent"
fi
fi
if [ $result = "none" ];
then
#remove virtualbox
if pacman -Qi virtualbox-guest-utils &> /dev/null; then
systemctl disable vboxservice.service
pacman -Rns virtualbox-guest-utils --noconfirm
echo "Removed virtualbox-guest-utils"
fi
if pacman -Qi virtualbox-guest-utils-nox &> /dev/null; then
systemctl disable vboxservice.service
pacman -Rns virtualbox-guest-utils-nox --noconfirm
echo "Removed virtualbox-guest-utils-nox"
fi
#remove vmware
if [ -f /etc/xdg/autostart/vmware-user.desktop ]; then
rm /etc/xdg/autostart/vmware-user.desktop
echo "Removed vmware-user.desktop"
fi
if pacman -Qi open-vm-tools &> /dev/null; then
systemctl disable vmware-vmblock-fuse.service
systemctl disable vmtoolsd.service
echo "Disabled vmtoolsd.service"
pacman -Rns open-vm-tools --noconfirm
echo "Removed open-vm-tools"
fi
if pacman -Qi xf86-video-vmware &> /dev/null; then
pacman -Rns xf86-video-vmware --noconfirm
echo "Removed xf86-video-vmware"
fi
if [ -f /etc/systemd/system/multi-user.target.wants/vmtoolsd.service ]; then
rm /etc/systemd/system/multi-user.target.wants/vmtoolsd.service
echo "Removed vmtoolsd.service if still exists"
fi
#remove qemu
if pacman -Qi qemu-guest-agent &> /dev/null; then
systemctl disable qemu-guest-agent.service
pacman -Rns qemu-guest-agent --noconfirm
echo "Removed qemu-guest-agent"
fi
if [ -f /usr/local/bin/arcolinux-virtual-machine-check ]; then
rm /usr/local/bin/arcolinux-virtual-machine-check
echo "Removed avm-check script"
fi
if [ -L /etc/systemd/system/multi-user.target.wants/virtual-machine-check.service ]; then
rm /etc/systemd/system/multi-user.target.wants/virtual-machine-check.service
echo "Removed avm-check script"
fi
fi
echo "########################################"
echo "End ALCI virtual machine check"
echo "########################################"

View File

@@ -0,0 +1,26 @@
#!/bin/bash
random_str() {
local randomlength=16
local str="gg-"
local chars="abcdefghijklmnopqrstuvwxyz0123456789"
for ((i=0; i<randomlength; i++)); do
local rand_index=$((RANDOM % ${#chars}))
str+="${chars:$rand_index:1}"
done
echo "$str"
}
NEW_HOSTNAME=$(random_str)
echo "$NEW_HOSTNAME" > /etc/hostname
cat <<EOF > /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 $NEW_HOSTNAME
EOF
echo "Hostname set to: $NEW_HOSTNAME"

View File

@@ -0,0 +1,29 @@
#!/bin/bash
#
# SPDX-License-Identifier: GPL-3.0-or-later
get_cmdline() {
local param
for param in $(</proc/cmdline); do
case "${param}" in
"${1}="*)
echo "${param##*=}"
return 0
;;
esac
done
}
mirror="$(get_cmdline mirror)"
[[ "$mirror" == 'auto' ]] && mirror="$(get_cmdline archiso_http_srv)"
[[ -n "$mirror" ]] || exit 0
mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig
cat >/etc/pacman.d/mirrorlist <<EOF
#
# Arch Linux repository mirrorlist
# Generated by archiso
#
Server = ${mirror%%/}/\$repo/os/\$arch
EOF

View File

@@ -0,0 +1 @@
fix-keys

View File

@@ -0,0 +1,116 @@
#!/bin/bash
#set -e
##################################################################################################################
# Author : Erik Dubois
# Website : https://www.erikdubois.be
# Website : https://www.alci.online
# Website : https://www.arcolinux.info
# Website : https://www.arcolinux.com
# Website : https://www.arcolinuxd.com
# Website : https://www.arcolinuxb.com
# Website : https://www.arcolinuxiso.com
# Website : https://www.arcolinuxforum.com
##################################################################################################################
#
# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK.
#
##################################################################################################################
#tput setaf 0 = black
#tput setaf 1 = red
#tput setaf 2 = green
#tput setaf 3 = yellow
#tput setaf 4 = dark blue
#tput setaf 5 = purple
#tput setaf 6 = cyan
#tput setaf 7 = gray
#tput setaf 8 = light blue
##################################################################################################################
Online=0
function check_connectivity() {
local test_ip
local test_count
test_ip="8.8.8.8"
test_count=1
if ping -c ${test_count} ${test_ip} > /dev/null; then
tput setaf 2
echo
echo "You are online"
echo
tput sgr0
Online=1
else
tput setaf 1
echo
echo "You are not connected to the internet"
echo "We can not download the latest archlinux-keyring package"
echo
echo "Make sure you are online to retrieve packages"
echo
tput sgr0
Online=0
fi
}
check_connectivity
if [ $Online -eq 1 ] ; then
tput setaf 2
echo
echo "Installing the latest archlinux-keyring package from the internet"
echo
tput sgr0
sudo pacman -Sy archlinux-keyring --noconfirm
echo
fi
echo "###############################################################################"
echo "Removing the pacman databases at /var/lib/pacman/sync/*"
echo "###############################################################################"
echo
sudo rm /var/lib/pacman/sync/*
echo
echo "###############################################################################"
echo "Removing /etc/pacman.d/gnupg folder"
echo "###############################################################################"
echo
sudo rm -rf /etc/pacman.d/gnupg/*
echo
echo "###############################################################################"
echo "Initialize pacman keys with pacman-key --init"
echo "###############################################################################"
echo
sudo pacman-key --init
echo
echo "###############################################################################"
echo "Populating keyring with pacman-key --populate"
echo "###############################################################################"
echo
sudo pacman-key --populate
echo
echo "###############################################################################"
echo "Adding Ubuntu keyserver to /etc/pacman.d/gnupg/gpg.conf"
echo "###############################################################################"
echo
echo "
keyserver hkp://keyserver.ubuntu.com:80" | sudo tee --append /etc/pacman.d/gnupg/gpg.conf
echo
echo "###############################################################################"
echo "Getting new databases with pacman -Sy"
echo "###############################################################################"
echo
sudo pacman -Sy
echo
echo "###############################################################################"
echo "### DONE - YOU CAN CLOSE THIS WINDOW ####"
echo "###############################################################################"

View File

@@ -0,0 +1 @@
fix-keys

View File

@@ -0,0 +1 @@
fix-keys

View File

@@ -0,0 +1,160 @@
#!/bin/bash
#set -e
##################################################################################################################
# Author : Erik Dubois
# Website : https://www.erikdubois.be
# Website : https://www.alci.online
# Website : https://www.ariser.eu
# Website : https://www.arcolinux.info
# Website : https://www.arcolinux.com
# Website : https://www.arcolinuxd.com
# Website : https://www.arcolinuxb.com
# Website : https://www.arcolinuxiso.com
# Website : https://www.arcolinuxforum.com
##################################################################################################################
#
# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK.
#
##################################################################################################################
#tput setaf 0 = black
#tput setaf 1 = red
#tput setaf 2 = green
#tput setaf 3 = yellow
#tput setaf 4 = dark blue
#tput setaf 5 = purple
#tput setaf 6 = cyan
#tput setaf 7 = gray
#tput setaf 8 = light blue
##################################################################################################################
installed_dir=$(dirname $(readlink -f $(basename `pwd`)))
##################################################################################################################
sudo pacman -Syyu
sudo pacman -S wget --noconfirm --needed
sudo pacman -S jq --noconfirm --needed
arco_repo_db=$(wget -qO- https://api.github.com/repos/arcolinux/arcolinux_repo/contents/x86_64)
echo "Getting the ArcoLinux keys from the ArcoLinux repo"
sudo wget "$(echo "$arco_repo_db" | jq -r '[.[] | select(.name | contains("arcolinux-keyring")) | .name] | .[0] | sub("arcolinux-keyring-"; "https://github.com/arcolinux/arcolinux_repo/raw/main/x86_64/arcolinux-keyring-")')" -O /tmp/arcolinux-keyring-git-any.pkg.tar.zst
sudo pacman -U --noconfirm --needed /tmp/arcolinux-keyring-git-any.pkg.tar.zst
######################################################################################################################
echo "Getting the latest arcolinux mirrors file"
sudo wget "$(echo "$arco_repo_db" | jq -r '[.[] | select(.name | contains("arcolinux-mirrorlist-git-")) | .name] | .[0] | sub("arcolinux-mirrorlist-git-"; "https://github.com/arcolinux/arcolinux_repo/raw/main/x86_64/arcolinux-mirrorlist-git-")')" -O /tmp/arcolinux-mirrorlist-git-any.pkg.tar.zst
sudo pacman -U --noconfirm --needed /tmp/arcolinux-mirrorlist-git-any.pkg.tar.zst
if grep -q arcolinux_repo /etc/pacman.conf; then
echo
tput setaf 2
echo "################################################################"
echo "################ ArcoLinux repos are already in /etc/pacman.conf "
echo "################################################################"
tput sgr0
echo
else
echo '
#[arcolinux_repo_testing]
#SigLevel = PackageRequired DatabaseNever
#Include = /etc/pacman.d/arcolinux-mirrorlist
[arcolinux_repo]
SigLevel = PackageRequired DatabaseNever
Include = /etc/pacman.d/arcolinux-mirrorlist
[arcolinux_repo_3party]
SigLevel = PackageRequired DatabaseNever
Include = /etc/pacman.d/arcolinux-mirrorlist
[arcolinux_repo_xlarge]
SigLevel = PackageRequired DatabaseNever
Include = /etc/pacman.d/arcolinux-mirrorlist' | sudo tee --append /etc/pacman.conf
fi
sudo pacman -Sy
func_install() {
if pacman -Qi $1 &> /dev/null; then
tput setaf 2
echo "###############################################################################"
echo "################## The package "$1" is already installed"
echo "###############################################################################"
echo
tput sgr0
else
tput setaf 3
echo "###############################################################################"
echo "################## Installing package " $1
echo "###############################################################################"
echo
tput sgr0
sudo pacman -S --noconfirm --needed $1
fi
}
func_install_chadwm() {
echo
tput setaf 2
echo "################################################################"
echo "################### Install chadwm"
echo "################################################################"
tput sgr0
echo
list=(
alacritty
archlinux-logout-git
arconet-variety-config
arcolinux-chadwm-git
arcolinux-chadwm-pacman-hook-git
arcolinux-powermenu-git
dash
dmenu
eww
feh
lxappearance
picom
polkit-gnome
rofi-lbonn-wayland
scrot
sxhkd
thunar
thunar-archive-plugin
thunar-volman
ttf-hack
ttf-jetbrains-mono-nerd
ttf-meslo-nerd-font-powerlevel10k
volumeicon
xfce4-notifyd
xfce4-power-manager
xfce4-screenshooter
xfce4-settings
xfce4-taskmanager
xfce4-terminal
)
count=0
for name in "${list[@]}" ; do
count=$[count+1]
tput setaf 3;echo "Installing package nr. "$count " " $name;tput sgr0;
func_install $name
done
}
func_install_chadwm
cp -Rf ~/.config ~/.config-backup-$(date +%Y.%m.%d-%H.%M.%S)
cp -arf /etc/skel/. ~

View File

@@ -0,0 +1,51 @@
#!/bin/bash
#set -e
##################################################################################################################
# Author : Erik Dubois
# Website : https://www.erikdubois.be
# Website : https://www.alci.online
# Website : https://www.arcolinux.info
# Website : https://www.arcolinux.com
# Website : https://www.arcolinuxd.com
# Website : https://www.arcolinuxb.com
# Website : https://www.arcolinuxiso.com
# Website : https://www.arcolinuxforum.com
##################################################################################################################
#
# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK.
#
##################################################################################################################
#tput setaf 0 = black
#tput setaf 1 = red
#tput setaf 2 = green
#tput setaf 3 = yellow
#tput setaf 4 = dark blue
#tput setaf 5 = purple
#tput setaf 6 = cyan
#tput setaf 7 = gray
#tput setaf 8 = light blue
##################################################################################################################
#iso=alci-iso
echo
tput setaf 3
echo "################################################################"
echo "################### Start clone arcolinux-nemesis"
echo "################################################################"
tput sgr0
echo
sudo pacman -Sy git --noconfirm --needed
[ -d $HOME"/DATA" ] || mkdir -p $HOME"/DATA"
cd ~/DATA
git clone https://github.com/erikdubois/arcolinux-nemesis
echo
tput setaf 3
echo "################################################################"
echo "################### End clone arcolinux-nemesis"
echo "################################################################"
tput sgr0
echo

View File

@@ -0,0 +1,12 @@
#!/bin/bash
# 系统信息函数
if [ $# -eq 0 ]; then
hostnamectl --static
else
command hostnamectl "$@"
fi

View File

@@ -0,0 +1,239 @@
#!/usr/bin/env bash
#
# SPDX-License-Identifier: GPL-3.0-or-later
usage() {
cat <<-_EOF_
live cd sound helper script.
Usage: livecdsound [OPTION]
OPTIONS
-u, --unmute unmute all sound cards
-p, --pick select a card for speetch output
-h, --help Show this usage message
_EOF_
}
bugout() {
printf "/usr/local/bin/livecdsound: programming error"
stat_fail
}
echo_card_indices() {
if [[ -f /proc/asound/cards ]]; then
sed -n -e's/^[[:space:]]*\([0-7]\)[[:space:]].*/\1/p' /proc/asound/cards
fi
}
# The following functions try to set many controls.
# No card has all the controls and so some of the attempts are bound to fail.
# Because of this, the functions can't return useful status values.
# $1 <card id>
# $2 <control>
# $3 <level>
unmute_and_set_level() {
[[ -n "$3" && -n "$2" && -n "$1" ]] || bugout
systemd-cat -t "livecdsound" printf "Setting: %s on card: %s to %s\n" "$2" "$1" "$3"
systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "$3" unmute
return 0
}
# $1 <card id>
# $2 <control>
mute_and_zero_level() {
[[ -n "$1" && -n "$2" ]] || bugout
systemd-cat -t "livecdsound" printf "Muting control: %s on card: %s\n" "$2" "$1"
systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "0%" mute
return 0
}
# $1 <card ID>
# $2 <control>
# $3 "on" | "off"
switch_control() {
[[ -n "$3" && -n "$1" ]] || bugout
systemd-cat -t "livecdsound" printf "Switching control: %s on card: %s to %s\n" "$2" "$1" "$3"
systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "$3"
return 0
}
# $1 <card ID>
sanify_levels_on_card() {
unmute_and_set_level "$1" "Front" "80%"
unmute_and_set_level "$1" "Master" "80%"
unmute_and_set_level "$1" "Master Mono" "80%"
unmute_and_set_level "$1" "Master Digital" "80%" # E.g., cs4237B
unmute_and_set_level "$1" "Playback" "80%"
unmute_and_set_level "$1" "Headphone" "100%"
unmute_and_set_level "$1" "PCM" "80%"
unmute_and_set_level "$1" "PCM,1" "80%" # E.g., ess1969
unmute_and_set_level "$1" "DAC" "80%" # E.g., envy24, cs46xx
unmute_and_set_level "$1" "DAC,0" "80%" # E.g., envy24
unmute_and_set_level "$1" "DAC,1" "80%" # E.g., envy24
unmute_and_set_level "$1" "Synth" "80%"
unmute_and_set_level "$1" "CD" "80%"
unmute_and_set_level "$1" "PC Speaker" "100%"
mute_and_zero_level "$1" "Mic"
mute_and_zero_level "$1" "IEC958" # Ubuntu #19648
# Intel P4P800-MX
switch_control "$1" "Master Playback Switch" on
switch_control "$1" "Master Surround" on
# Trident/YMFPCI/emu10k1:
unmute_and_set_level "$1" "Wave" "80%"
unmute_and_set_level "$1" "Music" "80%"
unmute_and_set_level "$1" "AC97" "80%"
# DRC:
unmute_and_set_level "$1" "Dynamic Range Compression" "80%"
# Required for HDA Intel (hda-intel):
unmute_and_set_level "$1" "Front" "80%"
# Required for SB Live 7.1/24-bit (ca0106):
unmute_and_set_level "$1" "Analog Front" "80%"
# Required at least for Via 823x hardware on DFI K8M800-MLVF Motherboard
switch_control "$1" "IEC958 Capture Monitor" off
# Required for hardware allowing toggles for AC97 through IEC958,
# valid values are 0, 1, 2, 3. Needs to be set to 0 for PCM1.
unmute_and_set_level "$1" "IEC958 Playback AC97-SPSA" "0"
# Required for newer Via hardware
unmute_and_set_level "$1" "VIA DXS,0" "80%"
unmute_and_set_level "$1" "VIA DXS,1" "80%"
unmute_and_set_level "$1" "VIA DXS,2" "80%"
unmute_and_set_level "$1" "VIA DXS,3" "80%"
# Required on some notebooks with ICH4:
switch_control "$1" "Headphone Jack Sense" off
switch_control "$1" "Line Jack Sense" off
# Some machines need one or more of these to be on;
# others need one or more of these to be off:
switch_control "$1" "Audigy Analog/Digital Output Jack" on
switch_control "$1" "SB Live Analog/Digital Output Jack" on
# D1984 -- Thinkpad T61/X61
switch_control "$1" "Speaker" on
switch_control "$1" "Headphone" on
# HDA-Intel w/ "Digital" capture mixer (See Ubuntu #193823)
unmute_and_set_level "$1" "Digital" "80%"
return 0
}
# $1 <card ID> | "all"
sanify_levels() {
local ttsdml_returnstatus=0
local card
case "$1" in
all)
for card in $(echo_card_indices); do
sanify_levels_on_card "$card" || ttsdml_returnstatus=1
done
;;
*)
sanify_levels_on_card "$1" || ttsdml_returnstatus=1
;;
esac
return "$ttsdml_returnstatus"
}
# List all cards that *should* be usable for PCM audio. In my experience,
# the console speaker (handled by the pcsp driver) isn't a suitable playback
# device, so we'll exclude it.
list_non_pcsp_cards() {
for card in $(echo_card_indices); do
local cardfile="/proc/asound/card${card}/id"
if [[ -r "$cardfile" && -f "$cardfile" && "$(cat "$cardfile")" != pcsp ]]; then
echo "$card"
fi
done
}
# Properly initialize the sound card so that we have audio at boot.
unmute_all_cards() {
sanify_levels all
}
is_numeric() {
local str="$1"
[[ "$str" =~ ^[0-9]+$ ]]
}
set_default_card() {
local card="$1"
sed -e "s/%card%/$card/g" </usr/local/share/livecd-sound/asound.conf.in \
>/etc/asound.conf
}
play_on_card() {
local card="$1" file="$2"
aplay -q "-Dplughw:$card,0" "$file"
}
# If there are multiple usable sound cards, prompt the user to choose one,
# using auditory feedback.
pick_a_card() {
set -f
usable_cards="$(list_non_pcsp_cards)"
num_usable_cards="$(wc -w <<<"$usable_cards")"
if (( num_usable_cards == 1 )); then
systemd-cat -t "livecdsound" printf "Only one sound card is detected\n"
exit 0
fi
systemd-cat -t "livecdsound" printf "multiple sound cards detected\n"
for card in "${usable_cards[@]}"; do
if ! is_numeric "$card"; then
continue
fi
play_on_card "$card" /usr/share/livecd-sounds/pick-a-card.wav &
done
wait
sleep 1
for card in "${usable_cards[@]}"; do
if ! is_numeric "$card"; then
continue
fi
play_on_card "$card" /usr/share/livecd-sounds/beep.wav
if read -r -t 10; then
systemd-cat -t "livecdsound" printf "Selecting %s sound card as default\n" "$card"
set_default_card "$card"
break
fi
done
}
if (( $# == 0 )); then
echo "error: No argument passed."
exit 1
fi
while [[ "${1}" != "" ]]; do
case ${1} in
-h|--help)
usage
exit
;;
-u|--unmute)
systemd-cat -t "livecdsound" printf "Unmuting all cards"
unmute_all_cards
;;
-p|--pick)
pick_a_card
;;
*)
echo "error: Unsupported argument"
usage
exit 1
;;
esac
shift
done

View File

@@ -0,0 +1,103 @@
#!/bin/sh
#chkconfig: 2345 80 05
#description: SmartTMS
source /etc/profile
RETVAL=0;
user=`whoami`;
username="";
tomcatversion="";
startall() {
if [ "$user" != "root" ]; then
echo -e "\033[31;5;5mPermission denied, please use the root user!\033[0m";
exit 2;
fi
if [ -n "`netstat -anp|grep -n '.*:8443.*java'`" ]; then
echo -e "\033[31;5;5mYou can't Repeated start smarttms;SmartTMS is running...\033[0m";
exit 2;
fi
echo -e "[\033[34;5;5mStarting smartTMS-DB...\033[0m]";
service mysqld start;
echo -e "[\033[34;5;5mStarting smartTMS-LMS...\033[0m]";
service proftpd start;
echo -e "[\033[34;5;5mStarting smartTMS-Server...\033[0m]";
setsid /home/smart/.tms3/apache-tomcat-7.0.63/bin/startup.sh;
echo -e "[\033[32;5;5mSmartTMS started.\033[0m]";
}
stopall() {
if [ "$user" != "root" ]; then
echo -e "\033[31;5;5mPermission denied, please use the root user!\033[0m";
exit 2;
fi
echo -e "[\033[34;5;5mStopping smartTMS-Server...\033[0m]";
/home/smart/.tms3/apache-tomcat-7.0.63/bin/shutdown.sh;
sleep 10;
kill -9 `netstat -tlnp | grep ":8443 " | awk '{print $7}' | awk -F '/' '{print $1}'`;
kill -9 `netstat -tlnp | grep ":162 " | awk '{print $7}' | awk -F '/' '{print $1}'`;
echo -e "Stopping smartTMS-Server [\033[32;5;5m OK \033[0m]";
echo -e "[\033[34;5;5mStopping smartTMS-DB...\033[0m]";
service mysqld stop;
echo -e "[\033[34;5;5mStopping smartTMS-LMS...\033[0m]";
service proftpd stop;
echo -e "[\033[32;5;5mSmartTMS stoped.\033[0m]";
}
start() {
if [ -n "`netstat -anp|grep -n '.*:8443.*java'`" ]; then
echo -e "\033[31;5;5mYou can't Repeated start smarttms;SmartTMS is running...\033[0m";
exit 2;
fi
echo -e "[\033[34;5;5mStarting smartTMS-Server...\033[0m]";
setsid /home/smart/.tms3/apache-tomcat-7.0.63/bin/startup.sh;
echo -e "[\033[32;5;5mSmartTMS started.\033[0m]";
}
stop() {
ps -ef|grep [j]ava|grep tomcat|awk '{print $2}'|while read pid
do
kill -9 $pid
done
}
case $1 in
start)
start
;;
stop)
stop
;;
status)
if [ -z "`netstat -anp|grep -n '.*:8443.*java'`" ]; then
echo "SmartTMS is running...";
else
echo "SmartTMS is stopped";
fi
;;
restart)
stop
start
;;
startall)
startall
;;
stopall)
stopall
;;
statusall)
if [ -z "`netstat -anp|grep -n '.*:8443.*java'`" ]; then
echo "SmartTMS is running...";
else
echo "SmartTMS is stopped";
fi
;;
restartall)
stopall
startall
;;
*)
;;
esac

View File

@@ -0,0 +1,3 @@
Defaults node
defaults.ctl.card %card%;
defaults.pcm.card %card%;