Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Jak vytvořit "instalátor"

Já například používám takovýto skript v základním adresáři gitu pro daný projekt (např. moje-megahra)

#! /bin/bash 
category="games"
projekt="moje-megahra"		# tak se jmenuje projekt a jmena taru se z nej odvozuji
. /etc/init.d/functions.sh
#########################################
portage_dst="portage_test"
einfo "=== $category/$projekt on ${portage_dst} ==="
if [ -z "$category" -o -z "$projekt" ] ; then
	ewarn "set category/projekt"
	exit;
fi
src='src'		# tady je zdrojak
old='old'		# tady stosuju ebuildy, distfiles a Manifest
portagedir='portage'
portage='portage/ebuild'	# tady je ebuild
tmpdir="tmp"		# sem to exportuju - pozor, maze se
tmpdir_subdir="inner_tmp"
branch=`git br|grep \*|sed "s/\* //"`	# zjistim jmeno branche

ver=`git describe HEAD^|sed "s/-g[^-]*$//"|sed "s/-/+/g"`	# verze.ver.ver[-1234]
#echo $ver
base=${ver%+*}
end=${ver##*+}
#echo "split($base)-($end)"
fixed=${base%.[0-9]*}
num=${base##*.}
newnum=$num
((newnum++))
#echo "split($fixed).($num)"
ver1=${ver/+/-r}
verzedir=${ver/+*/}
if [ "$branch" == "master" ]; then
	verze=$ver1
#	echo "#next ver. ->  git tag -a -m \"${fixed}.${newnum}\" ${fixed}.${newnum}"
else
	#verze="$ver1$branch"
	# nelze kvuli cislum verzi
	verze=${ver1/-r/b-r}
	verzedir=${verzedir}b
	eerror "Branched - for continue on main, increase version tag"
fi

#verze=${verze/\#/-br}
# nelze kvuli cislum verzi

rm -rf $tmpdir
mkdir -p $tmpdir/$projekt-$verzedir
mkdir -p $old/distfiles
mkdir -p $old/ebuilds
git archive --format=tar  HEAD $src|tar -x -C $tmpdir; (shopt -s dotglob; cp -rp $tmpdir/$src/* $tmpdir/$projekt-$verzedir;); rm -rf $tmpdir/$src
git archive --format=tar  HEAD $portage|tar -x -C $tmpdir; cp $tmpdir/$portage $tmpdir/$projekt-$verze.ebuild; rm -rf $tmpdir/$portagedir
git log --graph --oneline --decorate=full |sed "s#refs/[a-z/]*/##g;s#tag: ##g" >$tmpdir/$projekt-$verzedir/git-log.txt
git st >$tmpdir/$projekt-$verzedir/git-status.txt
#############################
tar czf $tmpdir/$projekt-$verze.tar.gz -C $tmpdir/$projekt-$verzedir ../$projekt-$verzedir
cp $tmpdir/$projekt-$verze.tar.gz $old/distfiles
cp $tmpdir/$projekt-$verze.ebuild $old/ebuilds
#############################
mkdir -p $tmpdir/$category/$projekt
pwd=`pwd`
cp $old/ebuilds/*.ebuild $tmpdir/$category/$projekt
cd $tmpdir/$category/$projekt
DISTDIR=$pwd/$old/distfiles ebuild $projekt-$verze.ebuild manifest
cd $pwd
cp $tmpdir/$category/$projekt/Manifest $old/ebuilds
##############################################
mkdir -p $tmpdir/$tmpdir_subdir/$category/$projekt
( 
	cd $tmpdir/$tmpdir_subdir;
	einfo "scp -r $category user@server:${portage_dst} "
	scp -r $category user@rhmserver:${portage_dst} 
)
einfo scp $old/distfiles/$projekt-$verze.tar.gz user@server:distfiles
scp $old/distfiles/$projekt-$verze.tar.gz user@server:distfiles
einfo rsync -avc --del $old/ebuilds/ user@server:${portage_dst}/$category/$projekt
rsync -avc --del $old/ebuilds/ user@server:${portage_dst}/$category/$projekt
rm -rf $tmpdir
einfo "exported to ${portage_dst}"
pro instalaci stáhnu ebuild ze serveru do $PORTAGE_OVERLAY a jednoduše nainstaluju jako každý jiný program

emerge moje-megahra

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny