source: BLFS/blfs-parser.sh@ 3d888ef

experimental
Last change on this file since 3d888ef was 2ca2992, checked in by Manuel Canales Esparcia <manuel@…>, 18 years ago

Moved function, XSL, and pre-made dependencies files to libs directory.

  • Property mode set to 100755
File size: 2.8 KB
Line 
1#!/bin/bash
2#
3# $Id$
4#
5set -e
6declare TARGET
7declare DEP_LEVEL
8declare PKGXML
9declare BLFS_XML
10declare VERBOSITY=1
11
12# Grab and name the command line options
13 optTARGET=$1
14optDEPENDENCY=$2
15
16
17#---------------------
18# Constants
19source libs/constants.inc
20[[ $? > 0 ]] && echo -e "\n\tERROR: constants.inc did not load..\n" && exit
21
22#---------------------
23# Configuration file for alternatives
24source alternatives.conf
25[[ $? > 0 ]] && echo -e "\n\tERROR: alternatives.conf did not load..\n" && exit
26
27#---------------------
28# Dependencies module
29source libs/func_dependencies
30[[ $? > 0 ]] && echo -e "\n\tERROR: func_dependencies did not load..\n" && exit
31
32#---------------------
33# parser module
34source libs/func_parser
35[[ $? > 0 ]] && echo -e "\n\tERROR: func_parser did not load..\n" && exit
36
37
38
39#-------------------------#
40validate_target() { # ID of target package (as listed in packages file)
41#-------------------------#
42: <<inline_doc
43 function: Validate the TARGET parameter.
44 input vars: $1, package/target to validate
45 externals: file: packages
46 modifies: TARGET
47 returns: nothing
48 output: nothing
49 on error: exit
50 on success: modifies TARGET
51inline_doc
52
53 if [[ -z "$1" ]] ; then
54 echo -e "\n\tYou must to provide a package ID."
55 echo -e "\tSee packages file for a list of available targets.\n"
56 exit 1
57 fi
58
59 if ! grep "^$1[[:space:]]" packages > /dev/null ; then
60 echo -e "\n\t$1 is not a valid package ID."
61 echo -e "\tSee packages file for a list of available targets.\n"
62 exit 1
63 fi
64
65 TARGET=$1
66 echo -e "\n\tUsing $TARGET as the target package."
67}
68
69#-------------------------#
70validate_dependency() { # Dependencies level 1(required)/2(1 + recommended)/3(2+ optional)
71#-------------------------#
72: <<inline_doc
73 function: Validate the dependency level requested.
74 input vars: $1, requested dependency level
75 externals: vars: TARGET
76 modifies: vars: DEP_LEVEL
77 returns: nothing
78 output: nothing
79 on error: nothing
80 on success: modifies DEP_LEVEL, default value = 2
81inline_doc
82
83 if [[ -z "$1" ]] ; then
84 DEP_LEVEL=2
85 echo -e "\n\tNo dependencies level has been defined."
86 echo -e "\tAssuming level $DEP_LEVEL (Required plus Recommended).\n"
87 return
88 fi
89
90 case $1 in
91 1 | 2 | 3 )
92 DEP_LEVEL=$1
93 echo -e "\n\tUsing $DEP_LEVEL as dependencies level.\n"
94 ;;
95 * )
96 DEP_LEVEL=2
97 echo -e "\n\t$1 is not a valid dependencies level."
98 echo -e "\tAssuming level $DEP_LEVEL (Required plus Recommended).\n"
99 ;;
100 esac
101}
102
103
104
105
106
107#------- MAIN --------
108if [[ ! -f packages ]] ; then
109 echo -e "\tNo packages file has been found.\n"
110 echo -e "\tExecution aborted.\n"
111 exit 1
112fi
113
114validate_target "${optTARGET}"
115validate_dependency "${optDEPENDENCY}"
116generate_dependency_tree
117generate_TARGET_xml
118generate_target_book
119create_build_scripts
Note: See TracBrowser for help on using the repository browser.