slackbuilds/d/go/go.SlackBuild
Gwenhael Le Moine 54060275ea add emacs mode
2010-11-17 16:39:13 +07:00

136 lines
3.1 KiB
Bash
Executable file

#!/bin/sh -x
# variables
VERSION=hg$(date +"%Y.%m.%d_%H.%M")
BUILD=1
PACKAGER=cyco
TMP=/tmp
CWD=$(pwd)
PRGNAM=$(basename $CWD)
PKG=$TMP/$PACKAGER/pkg-$PRGNAM
ARCH=$(uname -m)
REPOSITORY=/home/cycojesus/projets/packages/repositories/$PRGNAM
PREFIX=/usr
# nettoyage préalable
rm -fr $PKG $TMP/$PRGNAM-$VERSION
mkdir -p $PKG
# mise en place
cd $TMP
if [ ! -e $REPOSITORY ] ; then
mkdir -p $(dirname $REPOSITORY)
hg clone -r release https://go.googlecode.com/hg/ $(dirname $REPOSITORY)/$PRGNAM
else
( cd $REPOSITORY
hg pull -u
)
fi
mkdir -p $PKG$PREFIX/libexec/ $PREFIX/libexec/
cp -R $REPOSITORY $PREFIX/libexec/$PRGNAM
( cd $PREFIX/libexec/$PRGNAM
GOROOT=$(pwd)
GOBIN=$GOROOT/bin
GOOS=linux
case $ARCH in
x86_64)
GOARCH=amd64
;;
"i?86")
GOARCH=386
;;
*)
GOARCH=arm
esac
mkdir -p $GOBIN
find $GOROOT -name ".hg*" -exec rm -fr {} \;
cd $GOROOT/src
GOROOT=$GOROOT GOBIN=$GOBIN GOOS=$GOOS GOARCH=$GOARCH bash ./all.bash
mv $PREFIX/libexec/$PRGNAM $PKG$PREFIX/libexec/
rm -fr $PKG$PREFIX/libexec/go/src
( cd misc/emacs
find . -type f -name \*.el -exec emacs -batch -f batch-byte-compile {} \;
)
mkdir -p $PKG$PREFIX/bin
( cd $PKG$PREFIX/bin
for i in ../libexec/$PRGNAM/bin/* ; do
ln -s $i ;
done
)
mkdir -p $PKG$PREFIX/share/emacs/site-lisp/
( cd $PKG$PREFIX/share/emacs/site-lisp/
ln -s ../../../libexec/$PRGNAM/misc/emacs golang
)
mkdir -p $PKG/etc/profile.d
cat <<EOF > $PKG/etc/profile.d/go.sh
GOROOT=$PREFIX/libexec/$PRGNAM
GOBIN=\$GOROOT/bin
GOOS=linux
case \$(uname -m) in
x86_64)
GOARCH=amd64
;;
"i?86")
GOARCH=386
;;
*)
GOARCH=arm
esac
export GOROOT GOBIN GOOS GOARCH
EOF
chmod +x $PKG/etc/profile.d/go.sh
mkdir -p $PKG$PREFIX/doc
( cd $PKG$PREFIX/doc
ln -s ../libexec/$PRGNAM/doc $PRGNAM-$VERSION
)
)
# correction
( cd $PKG
chown -R root:root *
[ -d $PKG/usr/man ] && find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \;
[ -d $PKG/usr/info ] && find $PKG/usr/info -type f -name "*" -exec gzip -9f {} \;
)
# embaumement
mkdir -p $PKG/install
cat <<EOF > $PKG/install/slack-desc
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
$PRGNAM: $PRGNAM (a systems programming language)
$PRGNAM:
$PRGNAM: Go is…
$PRGNAM: …simple
$PRGNAM: …fast
$PRGNAM: …safe
$PRGNAM: …concurrent
$PRGNAM: …fun
$PRGNAM: …open source
$PRGNAM:
$PRGNAM: http://golang.org/
EOF
# empaquetage
cd $PKG
makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD$PACKAGER.txz