Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.1
fate
mkdist
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File mkdist of Package fate
#!/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