3 # for each file in support-rpms/*.list, extract the rpm and
4 # keep the files from the list
6 # list of stage tar ball we need to build, this is basically
7 # the list of stage directories
8 ALL_STAGES='PartDisks BootstrapRPM BootLVM'
10 # new files, in each stage dir
11 RPM_EXTRACT_DIR='rpm-extract/'
12 KEEP_FILE_LIST='keep-files'
14 # source files, in each stage dir
15 SOURCE_RPM_DIR='source-rpms/'
16 EXTRA_FILES='lib-paths'
17 CUSTOM_SCRIPT='custom.sh'
19 # destination for upload command
21 DEST_SERVER='yankee.cs.princeton.edu'
22 DEST_PATH='/export0/echo/alpina/'
29 for STAGE_DIR in $BUILD_STAGE; do
31 echo "Building $STAGE_DIR"
34 STAGE_DEST_FILE="alpina-$STAGE_DIR.tar.gz"
36 for file in `ls $SOURCE_RPM_DIR/*.list`; do
37 RPM_NAME="`basename $file list`rpm"
38 RPM_FILE="$SOURCE_RPM_DIR/$RPM_NAME"
41 echo "Extracting $RPM_NAME:"
42 extract $RPM_FILE $RPM_EXTRACT_DIR
44 echo "Files to be kept from $RPM_NAME:"
45 for line in `cat $file`; do
46 echo "./$RPM_EXTRACT_DIR/$line"
47 echo "./$line" >> $KEEP_FILE_LIST
52 if [[ -f $CUSTOM_SCRIPT ]]; then
53 echo "Running stage specific script"
56 if [[ "$?" -ne 0 ]]; then
57 echo "Custom stage script failed, exiting."
62 echo "Compressing files:"
64 tar --files-from=../$KEEP_FILE_LIST --exclude=CVS -cvzf ../../$STAGE_DEST_FILE
67 echo "Completed building $STAGE_DIR"
79 for STAGE_DIR in $UPLOAD_STAGE; do
80 STAGE_FILE_LIST="$STAGE_FILE_LIST alpina-$STAGE_DIR.tar.gz"
83 scp $STAGE_FILE_LIST $DEST_USER@$DEST_SERVER:$DEST_PATH
90 for STAGE_DIR in $CLEAN_STAGE; do
91 rm -rf $STAGE_DIR/$RPM_EXTRACT_DIR
92 rm -f $STAGE_DIR/$KEEP_FILE_LIST
94 STAGE_DEST_FILE="alpina-$STAGE_DIR.tar.gz"
95 rm -f $STAGE_DEST_FILE
97 echo "Cleaned $STAGE_DIR"
107 rpm2cpio $RPM > $DEST/out.cpio
108 (cd $DEST && cpio -ivd < out.cpio && rm out.cpio)
113 echo "Usage buildsupport.sh (build|upload|clean)";
116 # find out what do do
121 if [[ -z "$STAGE" ]]; then
122 # if the stage is blank, build all
125 # make sure the stage exists
126 if [[ ! -d "$STAGE" ]]; then
133 build) build "$STAGE";;
134 upload) upload "$STAGE";;
135 clean) clean "$STAGE";;