Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE
fate.8187
mkdist
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File mkdist of Package fate.8187
#!/bin/sh opt_repotype="" opt_version="" opt_format=tar opt_sign=gpg opt_destdir=/tmp opt_autoconf=true while [ $# -gt 0 ]; do next=$1; shift case $next in --format) opt_format=$1; shift : ;; --repotype) opt_repotype=$1; shift : ;; --sign) opt_sign=$1; shift : ;; --destdir) opt_destdir=$1; shift : ;; --no-autoconf) opt_autoconf=false;; --no-sign) opt_sign=none;; zip|tar) opt_format=$next : ;; cvs|git) opt_repotype=$next : ;; [0-9]*) opt_version=$next : ;; snap|--snap) opt_version="" : ;; /*|[a-z]*) module=$next case $module in git://*) # module=${module#git://*} opt_repotype=git;; esac if [ $opt_repotype=git ]; then git_opts="$*" shift $# fi : ;; *) echo "usage: mkdist [zip|tar] [cvs|git] [package] [version]" >&2 exit 1 esac done if [ -z "$opt_repotype" ]; then if [ -z "$module" -a -d CVS ]; then if [ ! -f CVS/Repository ]; then echo "Current directory seems to be CVS based, but no Repository file" >&2 exit 1 fi module=`cat CVS/Repository` if [ -f CVS/Root ]; then export CVSROOT=`cat CVS/Root` fi opt_repotype=cvs fi if [ -z "$module" -a -d .git ]; then unset URL eval `git remote show origin | sed '/.*Fetch *URL: */!d;s//URL=/'` if [ -z "$URL" ]; then echo "Current directory seems to be GIT based, but no origin URL" >&2 exit 1 fi module=$URL opt_repotype=git fi fi if [ -z "$opt_repotype" ]; then echo "Cannot determine repo type" >&2 exit 1 fi subdir="" case $opt_repotype in cvs) if [ `dirname $module` != '.' ]; then subdir=/`dirname $module` fi package=`basename $module` : ;; git) package=`basename $module .git` : ;; esac set -e checkoutdir=../tmp/dist.$$ trap "rm -rf $checkoutdir" 0 1 2 15 packagedir=$checkoutdir$subdir rm -rf $packagedir mkdir -p $packagedir curdir=`pwd` case $opt_destdir in /*) : ;; ".") opt_destdir=$curdir;; *) opt_destdir=$curdir/$opt_destdir;; esac cd $checkoutdir pwd case $opt_repotype in cvs) cvs co $module cd `dirname $module` find $package -name CVS | xargs rm -rf if [ -z "$opt_version" ]; then opt_version=`date +%Y%m%d` fi : ;; git) git clone $module $git_opts headrev=`cd $package && git log --format="format:%h" | head -1` find $package -name '.git*' | xargs rm -rf if [ -z "$opt_version" ]; then opt_version=`date +%Y%m%d`-$headrev fi : ;; esac case $opt_format in tar) archive="$opt_destdir/$package-$opt_version.tar.bz2" : ;; zip) archive="$opt_destdir/$package-$opt_version.zip" : ;; esac cat <<EOF ---------------------------------------- Module: $module Version: $opt_version Repo: $opt_repotype Checkout dir: $checkoutdir Package dir: $packagedir Dist archive: $archive ---------------------------------------- EOF mv $package $package-$opt_version ( cd $package-$opt_version if [ -f configure.ac -o -f configure.in ] && $opt_autoconf; then echo "Running autoconf" autoconf if [ ! -f config.h.in ]; then echo "Running autoheader" autoheader fi fi ) case $opt_format in tar) tar cf - $package-$opt_version/* | bzip2 -9 > "$archive" : ;; zip) zip -r "$archive" $package-$opt_version/* : ;; esac chmod 644 "$archive" case $opt_sign in gpg) gpg --detach-sign "$archive" chmod 644 "$archive".sig : ;; none) : ;; *) echo "Don't know how to sign this tarball" >&2 : ;; esac
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor