From 649ee061298a14035d03b0e24d1c2f9d5a7992f4 Mon Sep 17 00:00:00 2001 From: Jussi Pakkanen Date: Wed, 26 Dec 2012 23:39:27 +0200 Subject: Renamed main file. --- builder.py | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ run_tests.py | 2 +- runbuilder.py | 76 ----------------------------------------------------------- 3 files changed, 77 insertions(+), 77 deletions(-) create mode 100755 builder.py delete mode 100755 runbuilder.py diff --git a/builder.py b/builder.py new file mode 100755 index 0000000..2e21527 --- /dev/null +++ b/builder.py @@ -0,0 +1,76 @@ +#!/usr/bin/python3 -tt + +# Copyright 2012 Jussi Pakkanen + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from optparse import OptionParser +import sys, stat +import os.path +import environment + +parser = OptionParser() + +parser.add_option('--prefix', default='/usr/local', dest='prefix') +parser.add_option('--libdir', default='lib', dest='libdir') +parser.add_option('--includedir', default='include', dest='includedir') +parser.add_option('--datadir', default='share', dest='datadir') + +class Builder(): + builder_filename = 'builder.txt' + + def __init__(self, dir1, dir2, options): + (self.source_dir, self.build_dir) = self.validate_dirs(dir1, dir2) + self.compiler = environment.GnuCCompiler('gcc') + self.compiler.sanity_check(self.build_dir) + + def has_builder_file(self, dirname): + fname = os.path.join(dirname, Builder.builder_filename) + try: + ifile = open(fname, 'r') + ifile.close() + return True + except IOError: + return False + + def validate_dirs(self, dir1, dir2): + ndir1 = os.path.abspath(dir1) + ndir2 = os.path.abspath(dir2) + if not stat.S_ISDIR(os.stat(ndir1).st_mode): + raise RuntimeError('%s is not a directory' % dir1) + if not stat.S_ISDIR(os.stat(ndir2).st_mode): + raise RuntimeError('%s is not a directory' % dir2) + self.options = options + if os.path.samefile(dir1, dir2): + raise RuntimeError('Source and build directories must not be the same. Create a pristine build directory.') + if self.has_builder_file(ndir1): + if self.has_builder_file(ndir2): + raise RuntimeError('Both directories contain a builder file %s.' % Builder.builder_filename) + return (ndir1, ndir2) + if self.has_builder_file(ndir2): + return (ndir2, ndir1) + raise RuntimeError('Neither directory contains a builder file %s.' % Builder.builder_filename) + +if __name__ == '__main__': + (options, args) = parser.parse_args(sys.argv) + if len(args) == 1 or len(args) > 3: + print('Invalid number of arguments') + sys.exit(1) + dir1 = args[1] + if len(args) > 2: + dir2 = args[2] + else: + dir2 = '.' + builder = Builder(dir1, dir2, options) + print ('Source dir: ' + builder.source_dir) + print ('Build dir: ' + builder.build_dir) diff --git a/run_tests.py b/run_tests.py index 7a86711..d8c3f95 100755 --- a/run_tests.py +++ b/run_tests.py @@ -18,7 +18,7 @@ from glob import glob import os, subprocess, shutil test_build_dir = 'test build area' -builder_command = './runbuilder.py' +builder_command = './builder.py' def run_test(testdir): shutil.rmtree(test_build_dir) diff --git a/runbuilder.py b/runbuilder.py deleted file mode 100755 index 2e21527..0000000 --- a/runbuilder.py +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/python3 -tt - -# Copyright 2012 Jussi Pakkanen - -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at - -# http://www.apache.org/licenses/LICENSE-2.0 - -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from optparse import OptionParser -import sys, stat -import os.path -import environment - -parser = OptionParser() - -parser.add_option('--prefix', default='/usr/local', dest='prefix') -parser.add_option('--libdir', default='lib', dest='libdir') -parser.add_option('--includedir', default='include', dest='includedir') -parser.add_option('--datadir', default='share', dest='datadir') - -class Builder(): - builder_filename = 'builder.txt' - - def __init__(self, dir1, dir2, options): - (self.source_dir, self.build_dir) = self.validate_dirs(dir1, dir2) - self.compiler = environment.GnuCCompiler('gcc') - self.compiler.sanity_check(self.build_dir) - - def has_builder_file(self, dirname): - fname = os.path.join(dirname, Builder.builder_filename) - try: - ifile = open(fname, 'r') - ifile.close() - return True - except IOError: - return False - - def validate_dirs(self, dir1, dir2): - ndir1 = os.path.abspath(dir1) - ndir2 = os.path.abspath(dir2) - if not stat.S_ISDIR(os.stat(ndir1).st_mode): - raise RuntimeError('%s is not a directory' % dir1) - if not stat.S_ISDIR(os.stat(ndir2).st_mode): - raise RuntimeError('%s is not a directory' % dir2) - self.options = options - if os.path.samefile(dir1, dir2): - raise RuntimeError('Source and build directories must not be the same. Create a pristine build directory.') - if self.has_builder_file(ndir1): - if self.has_builder_file(ndir2): - raise RuntimeError('Both directories contain a builder file %s.' % Builder.builder_filename) - return (ndir1, ndir2) - if self.has_builder_file(ndir2): - return (ndir2, ndir1) - raise RuntimeError('Neither directory contains a builder file %s.' % Builder.builder_filename) - -if __name__ == '__main__': - (options, args) = parser.parse_args(sys.argv) - if len(args) == 1 or len(args) > 3: - print('Invalid number of arguments') - sys.exit(1) - dir1 = args[1] - if len(args) > 2: - dir2 = args[2] - else: - dir2 = '.' - builder = Builder(dir1, dir2, options) - print ('Source dir: ' + builder.source_dir) - print ('Build dir: ' + builder.build_dir) -- cgit v1.1