From 653339c813f9deee5423aa83a6918e8a4ba7afb6 Mon Sep 17 00:00:00 2001 From: Thomas Sachau Date: Mon, 8 Sep 2008 19:12:59 +0000 Subject: [PATCH] scripts/use_desc_gen: Add files for automatic use.local.desc generation svn path=/sunrise/; revision=7028 --- scripts/use_desc_gen | 38 ++++++++++++++++++++++++ scripts/use_desc_gen.pyc | Bin 0 -> 7187 bytes scripts/use_desc_gen.sh | 61 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 99 insertions(+) create mode 100644 scripts/use_desc_gen create mode 100644 scripts/use_desc_gen.pyc create mode 100644 scripts/use_desc_gen.sh diff --git a/scripts/use_desc_gen b/scripts/use_desc_gen new file mode 100644 index 000000000..f1c6b8f29 --- /dev/null +++ b/scripts/use_desc_gen @@ -0,0 +1,38 @@ +#!/usr/bin/env python +# Written by Alec Warner +# This code is hereby placed in the public domain. + +"""A simple driver file for use_desc_gen.""" + +import logging +import optparse +import use_desc_gen + + +def GetOpts(): + """Simple Option Parsing.""" + + parser = optparse.OptionParser() + parser.add_option('-r', '--repo_path', help=('path to repository from ' + 'which the documentation will be generated.')) + parser.add_option('-c', '--category_file', help=('path to a category', + 'file if repo_path lacks a profile/category file')) + + opts, unused_args = parser.parse_args() + + if not opts.repo_path: + parser.error('--repo_path is a required option') + + logging.debug('REPO_PATH is %s' % opts.repo_path) + + return (opts, unused_args) + + +def Main(): + """Main.""" + opts, unused_args = GetOpts() + use_desc_gen.FindMetadataFiles(opts.repo_path, opts.category_file) + + +if __name__ == '__main__': + Main() diff --git a/scripts/use_desc_gen.pyc b/scripts/use_desc_gen.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8997d8ddd4db9a66a5c1b8dc72377733eca0d445 GIT binary patch literal 7187 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 literal 0 HcmV?d00001 diff --git a/scripts/use_desc_gen.sh b/scripts/use_desc_gen.sh new file mode 100644 index 000000000..f0b0bf86f --- /dev/null +++ b/scripts/use_desc_gen.sh @@ -0,0 +1,61 @@ +#!/bin/sh +# Written by Douglas Goldstein +# This code is hereby placed into the public domain +# +# $Id: use_desc_gen.sh,v 1.6 2008/08/23 21:28:28 robbat2 Exp $ + +usage() { + prog=$(basename $1) + + echo "${prog} /path/to/portage/tree" + exit 1; +} + +if [ $# -ne 1 ]; then + usage $0; +fi + +if [ "x${1}" = "x-h" -o "x${1}" = "x--help" ]; then + usage $0; +fi + +if [ ! -f "${1}/profiles/use.local.desc" ]; then + usage $0; +fi + +pid=$(echo $$) + +# make list of categories that we want to remove from current use.local.desc +#cat "${1}/profiles/use.local.desc" | sed '1,/# The following categories/d;/# End of metadata categories/,$d;s/^../^/' > /tmp/${pid}.grep + +# we also want to remove comments and blank lines +#echo "^#" >> /tmp/${pid}.grep +#echo "^$" >> /tmp/${pid}.grep + +# make list of categories to process with use_desc_gen (same as above without grep rule) +#cat "${1}/profiles/use.local.desc" | sed '1,/# The following categories/d;/# End of metadata categories/,$d;s/^..//' > /tmp/${pid}.categories + +# take comments from existing use.local.desc +grep '^#' "${1}/profiles/use.local.desc" > /tmp/${pid}.use.local.desc +echo "" >> /tmp/${pid}.use.local.desc + +# use list from step #1 to filter current use.local.desc and add un-converted categories to new use.local.desc +#grep -v -f /tmp/${pid}.grep "${1}/profiles/use.local.desc" > /tmp/${pid}.new.use + +# the secret sauce, append to new use.local.desc +python scripts/use_desc_gen --repo_path "${1}" > /tmp/${pid}.new.use + +# let's keep it sorted: use major category, minor category, and package name +# as primary, secondary, and tertiary sort keys, respectively +sort -t: -k1,1 -k2 /tmp/${pid}.new.use | sort -s -t/ -k1,1 \ + >> /tmp/${pid}.use.local.desc + +# clean up +#rm -rf /tmp/${pid}.categories +#rm -rf /tmp/${pid}.grep +rm -rf /tmp/${pid}.new.use + +mv /tmp/${pid}.use.local.desc profiles/use.local.desc +if [[ $(svn diff profiles/use.local.desc) ]]; then + svn commit -m "Automatic update to use.local.desc" profiles/use.local.desc; +fi -- 2.43.2