Sisyphus repositório
Última atualização: 1 outubro 2023 | SRPMs: 18631 | Visitas: 37891585
en ru br
ALT Linux repositórios
S:1.1.4-alt1

Group :: Sistema/Configurações/Pacotes
RPM: setbranding

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs e FR  Repocop 

#!/bin/bash -e

new="$1"
_VERBOSE=""

show_usage() {
cat <<EOF
Usage: setbranding [options] [<new_branding_name>]

Program shows or change current branding

Valid options are:
-l list all available brandings
-v verbose output
-h,--help display help screen

<new_branding_name> is full two-word or short name of branding

Examples:

# setbranding

Run program without branding name displays current branding packages

# setbranding -l

Display all available brandings

# setbranding altlinux-centaurus

Change branding to altlinux-centaurus (altlinux- may be omitted)

Report bugs to http://bugs.altlinux.org
EOF
exit
}

show_priv() {
echo "Change branding requires root privileges. Program is terminated."
exit 1
}

show_branding_list() {
apt-cache search --names-only branding release|sed -e 's/^branding-\(.\+\)-release .*$/\1/g' |sort
exit 1
}

if [ -z "$new" ]
then

# Show installed branding pacakges
/bin/rpm -qa branding-\* --qf '%{name}\n'

else

# Show usage information
if [ "$new" = "--help" -o "$new" = "-h" ] ; then
show_usage
fi

# Show available brandings
test "$new" = "-l" && show_branding_list

# Verbose output
if [ "$new" = "-v" ] ; then
_VERBOSE="1"
if [ "$#" -lt 2 ] ; then
show_usage
else
new="$2"
fi
fi

# Check privileges
test -w "/boot/grub/grub.cfg" || show_priv

# Strict branding name
echo "$new" | grep '-' >/dev/null || new="altlinux-$new"
echo -n "Change branding to $new? [Y/n] "
read choice
test "+$choice" = "+n" && exit
packages="$(rpm -qa branding-\* --qf '%{name}\n')"
removed="$(echo $packages| tr ' ' '\n' | grep -v "^branding-$new-"| sed 's/$/-/')"
#apt-get update

# Build list of packages with exclude missed packages
installed="$(echo $packages | tr ' ' '\n' | cut -f4 -d- | sed "s/^/branding-$new-/"|sort)"
installed="`comm -12 <(echo "$installed") <(apt-cache pkgnames branding-$new|sort)`"
#echo $installed $removed | tr ' ' '\n'

# Exit if no installed or removed packages are found
test -z "$installed" -a -z "$removed" && exit 0

# Show apt-get with parameters
test -n "$_VERBOSE" && echo "RUN /usr/bin/apt-get install $installed $removed"

# Store old rpm names
before="$(rpm -qa branding-\* --qf '%{name}-%{version}-%{release}\n')"

# Replace old branding with new one
/usr/bin/apt-get install $installed $removed

difference="`sort <(echo "$before") <(rpm -qa branding-\* --qf '%{name}-%{version}-%{release}\n') | uniq -u`"
test -n "$_VERBOSE" && echo "DIFFERENCE: $difference"

# If no changes don't update initrd and grub
test -z "$difference" && exit 0

# Update Grub theme
test -n "$_VERBOSE" && echo "RUN /usr/sbin/grub-mkconfig -o /boot/grub/grub.cfg"
/usr/sbin/grub-mkconfig -o /boot/grub/grub.cfg

# Generate newt bootsplash
test -n "$_VERBOSE" && echo "RUN /usr/sbin/make-initrd"
/usr/sbin/make-initrd
fi
 
projeto & código: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
mantenedor atual: Michael Shigorin
mantenedor da tradução: Fernando Martini aka fmartini © 2009