From 44c866b682642e09d5de1c2ffdfe9928e51d8772 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Reynolds?= Date: Sat, 5 Feb 2011 12:53:02 -0300 Subject: CreateWorkDir creates the dir tree for packaging --- createworkdir | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ doc/createworkdir | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++ libretools.conf | 20 ++++++++++++++--- 3 files changed, 145 insertions(+), 3 deletions(-) create mode 100755 createworkdir create mode 100644 doc/createworkdir 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 . + +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/ + libre-testing/ + 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 -- cgit v1.2.2