summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolás Reynolds <fauno@kiwwwi.com.ar>2011-02-05 12:53:02 -0300
committerNicolás Reynolds <fauno@kiwwwi.com.ar>2011-02-05 12:53:02 -0300
commit44c866b682642e09d5de1c2ffdfe9928e51d8772 (patch)
tree35c8e5a6ed2f7cc5e11b3b7d802c57b86cb8df4b
parent62d480116033b09540fe62d32c9ee3da720f35e0 (diff)
CreateWorkDir creates the dir tree for packaging
-rwxr-xr-xcreateworkdir66
-rw-r--r--doc/createworkdir62
-rw-r--r--libretools.conf20
3 files changed, 145 insertions, 3 deletions
diff --git a/createworkdir b/createworkdir
new file mode 100755
index 0000000..1d4a929
--- /dev/null
+++ b/createworkdir
@@ -0,0 +1,66 @@
+#!/bin/bash
+# CreateWorkDir
+# Creates a dir structure for working with Parabola packages
+
+# Copyright 2010 Nicolás Reynolds
+
+# ---------- GNU General Public License 3 ----------
+
+# This file is part of Parabola.
+
+# Parabola is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# Parabola is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with Parabola. If not, see <http://www.gnu.org/licenses/>.
+
+source /etc/libretools.conf
+custom_config=$XDG_CONFIG_HOME/libretools/libretools.conf
+[[ -e $custom_config ]] && source $custom_config
+
+# Send every output to /dev/null
+stdnull=">/dev/null 2>&1"
+
+# Create the WORKDIR
+[[ ! -d ${WORKDIR} ]] && {
+ echo "Creating WORKDIR on ${WORKDIR}"
+ mkdir -p ${WORKDIR} ${stdnull} || exit 1
+}
+
+[[ ! -d ${WORKDIR}/abslibre/.git ]] && {
+ echo "Cloning into ABSLibre"
+ git clone ${ABSLIBREGIT} ${WORKDIR}/abslibre || exit 1
+}
+
+
+# Create the staging and repo dirs
+_repodir=${WORKDIR}/repos
+for _repo in ${REPOS[@]}; do
+ [[ ! -d ${WORKDIR}/staging/${_repo} ]] && {
+ mkdir -p ${WORKDIR}/staging/${_repo} ${stdnull} || {
+ echo "ERROR: Can't create ${WORKDIR}/staging/${_repo}"
+ exit 1
+ }
+ }
+
+ for _arch in ${ARCHES[@]}; do
+ [[ ! -d ${_repodir}/${_repo}/${_arch} ]] && {
+ mkdir -p ${_repodir}/${_repo}/${_arch} ${stdnull} || {
+ echo "ERROR: Can't create ${_repodir}/${_repo}/${_arch}"
+ exit 1
+ }
+ }
+ done
+done
+
+echo "All done, your packaging dir tree looks like this now:"
+ls --color=always ${WORKDIR}/*/*
+
+exit 0
diff --git a/doc/createworkdir b/doc/createworkdir
new file mode 100644
index 0000000..d74198a
--- /dev/null
+++ b/doc/createworkdir
@@ -0,0 +1,62 @@
+== CreateWorkDir
+
+This script recreates a proper dir tree for packaging. It's aim is to help
+you be organized with the work you do as a packager, and stablish a
+certain standard for packages' ubication, so you don't have to loose much
+time with them. Just package and upload!
+
+It will create a dir tree like this:
+workdir/
+ abslibre/
+ .git/
+ libre/<PKGBUILDS>
+ libre-testing/<PKGBUILDS>
+ staging/
+ libre/
+ libre-testing/
+ repos/
+ libre/
+ i686/
+ x86_64/
+ libre-testing/
+ i686/
+ x86_64/
+
+*Related Variables*
+ - WORKDIR
+
+
+=== staging/
+
+This directory contains one dir for each repository, where the resulting
+packages are in moved for syncing against the main repository on
+Parabola's server. This dir is architecture independent.
+
+*Related Variables*
+ - REPOS
+
+
+=== abslibre/
+
+This is the git repo for Parabola's PKGBUILDs. Here you can find the ABS
+tree for our packages, and also where you'll have to put new ones for
+commit.
+
+(You'll need push access to Parabola's main server, but pulling is
+public.)
+
+*Related Variables*
+ - ABSLIBREGIT
+
+
+=== repos/
+
+Contains the repo dir structure. Probably not useful for uploading
+packages, but it will be for creating new repos for public access.
+
+It contains a dir for every repository, and inside them, a dir for every
+supported architecture.
+
+*Related Variables*
+ - REPOS
+ - ARCHES
diff --git a/libretools.conf b/libretools.conf
index 47f268a..00cbb28 100644
--- a/libretools.conf
+++ b/libretools.conf
@@ -1,6 +1,14 @@
## Blacklist URL
BLACKLIST=http://repo.parabolagnulinux.org/docs/blacklist.txt
+# The dir where you work on
+WORKDIR=/home/$USER/packages
+# The repos you'll be packaging for
+REPOS=('libre' 'libre-testing')
+
+# The architectures
+ARCHES=('i686' 'x86_64')
+
## The directory where the chroots are stored
CHROOTDIR=/home/chroot
@@ -13,15 +21,18 @@ CHCOPY=copy
CACHEDIR=`grep "^#\?CacheDir" /etc/pacman.conf | cut -d'=' -f2`
## Directory where you store PKGBUILD patches
-PATCHDIR=
+PATCHDIR=${WORKDIR}/abslibre/patches
## Parabola hostname (should be the same used on ssh_config
PARABOLAHOST=parabola
## Server destination of libre packages
-LIBREDESTDIR=parabolagnulinux.org/repo/staging
+LIBREDESTDIR=parabolagnulinux.org/free/staging
LIBRESRCDIR=parabolagnulinux.org/repo/pkgbuilds
+## ABSLibre
+ABSLIBREGIT=http://projects.parabolagnulinux.org/abslibre.git/
+
# Recommended SSH Config
# SSH host, it's better if you have it configured on ~/.ssh/config
# with ControlMaster auto (and a shell opened somewhere else)
@@ -44,7 +55,10 @@ LIBRESRCDIR=parabolagnulinux.org/repo/pkgbuilds
# Checks if vars aren't empty
-for VAR in CHROOTDIR CHROOT CHCOPY CACHEDIR PARABOLAHOST LIBREDESTDIR LIBRESRCDIR; do
+#
+for VAR in CHROOTDIR CHROOT CHCOPY CACHEDIR PARABOLAHOST LIBREDESTDIR
+ LIBRESRCDIR BLACKLIST WORKDIR PATCHDIR REPOS ARCHES ABSLIBREGIT; do
+
[[ -z ${!VAR} ]] && {
echo "Configure $VAR var in $0"
exit 1