Sisyphus repositório
Última atualização: 1 outubro 2023 | SRPMs: 18631 | Visitas: 37730794
en ru br
ALT Linux repositórios
S:3.6.3-alt1
5.0: 2.48a-alt2
4.1: 2.45-alt2.2.1.qa1
4.0: 2.45-alt0.M40.2
3.0: 2.36-alt1.1

Outros repositórios
Upstream:2.45

Group :: Gráficos
RPM: blender

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs e FR  Repocop 

#!/bin/sh -euf
#
# A wrapper script for Blender
#

# In case user's home directory doesn't contain ~/.blender, symlink it
# from /usr/lib/blender

BF_HOME="$HOME/.blender"
BF_LIBS='@LIBDIR@/blender'
BF_DATA='/usr/share/blender'

BF_HOMEDIRS='plugins/sequence plugins/texture scripts'

bf_update_symlink() {
[ $# -ne 2 ] && return 1

# symlink is existing already
if [ -h "$2" ] ; then

# broken symlink: remove
[ -r "$2" ] || rm -f "$2"

# does not point to proper target: remove
[ "$(readlink $2)" != "$1" ] && rm -f "$2"
fi

# create symlink
[ ! -e "$2" ] && [ -e "$1" ] && ln -s "$1" "$2"

return 0
}

bf_rm_broken_links() {
[ $# -ne 1 ] && return 1
for slnk in $(find $1 -mindepth 1 -maxdepth 1 -type l) ; do
[ -r $slnk ] || rm -f $slnk
done
return 0
}

# calculate the reference checksum
CHECK_DIRS=
for i in $BF_HOMEDIRS ; do
CHECK_DIRS="$CHECK_DIRS $BF_LIBS/$i"
done
CHECK_DIRS="$CHECK_DIRS $BF_DATA"
ref=$(find $CHECK_DIRS -mindepth 1 -maxdepth 1 -type f -printf '%p%s%T@\n'| sort)
sum=$(echo -n "$ref" | md5sum)

if [ ! -r "$BF_HOME/checksum" ] || [ -n "$(echo -n $sum | cmp $BF_HOME/checksum -)" ] ; then
echo Creating/updating homedir symlinks, removing menu cache

# create directories tree
for i in $BF_HOMEDIRS ; do
[ -d "$BF_HOME/$i" ] || install -d "$BF_HOME/$i"
done

# remove blender's menu cache, should be recreated by blender
[ -r "$BF_HOME/Bpymenus" ] && rm -f "$BF_HOME/Bpymenus"

# symlinks to font and languages list
bf_update_symlink $BF_DATA/.Blanguages $BF_HOME/.Blanguages
bf_update_symlink $BF_DATA/.bfont.ttf $BF_HOME/.bfont.ttf

# symlinks to plugins and scripts
for i in $BF_HOMEDIRS ; do

# remove broken links (scripts or plugins was uninstalled)
bf_rm_broken_links "$BF_HOME/$i"

for j in $(find "$BF_LIBS/$i" -mindepth 1 -maxdepth 1 -type f -printf '%f\n');
do
bf_update_symlink "$BF_LIBS/$i/$j" "$BF_HOME/$i/$j"
done
done

# symlink to libdir/blender/scripts/bpymodules
bf_update_symlink "$BF_LIBS/scripts/bpymodules" "$BF_HOME/scripts/bpymodules"

# copy libdir/blender/scripts/bpydata, should be used for scripts configuration data
[ -e "$BF_HOME/scripts/bpydata" ] || cp -ax "$BF_LIBS/scripts/bpydata" "$BF_HOME/scripts/bpydata"

# store reference checksum
echo -n $sum > "$BF_HOME/checksum"
fi

# deal with TEMP environment variable, used in blender
TEMP=${TMP:=/tmp}
export TEMP

# run blender
echo Running Blender
/usr/bin/blender-bin $@

 
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