Changeset a803d120 in rtems-libbsd for freebsd-to-rtems.py


Ignore:
Timestamp:
Mar 8, 2012, 4:04:36 PM (8 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.11, afaeccc05a556f6aa25ba044a7e49d6aa634a59e, freebsd-9.3, master
Children:
6ad03bf
Parents:
b9c291c
Message:

freebsd-to-rtems.py Enhancements

+ dry-run mode
+ early-exit mode
+ more verbose output
+ usage message improved
+ FreeBSD and RTEMS Directory error checking

File:
1 edited

Legend:

Unmodified
Added
Removed
  • freebsd-to-rtems.py

    rb9c291c ra803d120  
    3838import getopt
    3939
    40 RTEMS_DIR = sys.argv[1]
    41 FreeBSD_DIR = '.'
    42 verbose = False
     40RTEMS_DIR = "not_set"
     41FreeBSD_DIR = "not_set"
     42isVerbose = False
    4343isForward = True
     44isDryRun = True
     45isEarlyExit = False
    4446
    4547def usage():
    46         print "Usage help here"
     48  print "freebsd-to-rtems.py [args]"
     49  print "  -?|-h|--help     print this and exit"
     50  print "  -d|--dry-run     run program but no modifications"
     51  print "  -e|--early-exit  evaluate arguments, print results, and exit"
     52  print "  -R|--reverse     default FreeBSD -> RTEMS, reverse that"
     53  print "  -r|--rtems       RTEMS directory"
     54  print "  -f|--freebsd     FreeBSD directory"
     55  print "  -v|--verbose     enable verbose output mode"
    4756
    4857# Parse the arguments
    4958def parseArguments():
    50   global RTEMS_DIR, FreeBSD_DIR, verbose, isForward
     59  global RTEMS_DIR, FreeBSD_DIR, isVerbose, isForward, isEarlyExit
    5160  try:
    52     opts, args = getopt.getopt(sys.argv[1:], "?hRr:f:v",
     61    opts, args = getopt.getopt(sys.argv[1:], "?hdeRr:f:v",
    5362                 ["help",
    5463                  "help",
     64                  "dry-run"
     65                  "early-exit"
    5566                  "reverse"
    5667                  "rtems="
     
    6677  for o, a in opts:
    6778    if o == "-v":
    68       verbose = True
     79      isVerbose = True
    6980    elif o in ("-h", "--help", "-?"):
    7081      usage()
    7182      sys.exit()
     83    elif o in ("-d", "--dry-run"):
     84      isForward = False
     85    elif o in ("-e", "--early-exit"):
     86      isEarlyExit = True
    7287    elif o in ("-R", "--reverse"):
    7388      isForward = False
     
    8297
    8398parseArguments()
    84 print "Verbose:           " + ("no", "yes")[verbose]
     99print "Verbose:           " + ("no", "yes")[isVerbose]
     100print "Dry Run:           " + ("no", "yes")[isDryRun]
    85101print "RTEMS Directory:   " + RTEMS_DIR
    86102print "FreeBSD Directory: " + FreeBSD_DIR
    87103print "Direction:         " + ("reverse", "forward")[isForward]
    88104
    89 # test for existence of RTEMS and FreeBSD directories
    90 if os.path.isdir( RTEMS_DIR ) != True:
    91     print "RTEMS Directory (" + RTEMS_DIR + ") does not exist"
    92     sys.exit(2)
     105# Check directory argument was set and exist
     106def wasDirectorySet(desc, path):
     107    if path == "not_set":
     108        print desc + " Directory was not specified on command line"
     109        sys.exit(2)
     110
     111    if os.path.isdir( path ) != True:
     112        print desc + " Directory (" + path + ") does not exist"
     113        sys.exit(2)
     114
     115# Were RTEMS and FreeBSD directories specified
     116wasDirectorySet( "RTEMS", RTEMS_DIR )
     117wasDirectorySet( "FreeBSD", FreeBSD_DIR )
    93118 
    94119if os.path.isdir( FreeBSD_DIR ) != True:
     
    96121    sys.exit(2)
    97122 
     123if FreeBSD_DIR == RTEMS_DIR:
     124    print "FreeBSD and RTEMS Directories are the same"
     125    sys.exit(2)
     126
     127if isEarlyExit == True:
     128    print "Early exit at user request"
     129    sys.exit(0)
     130 
    98131# Prefix added to FreeBSD files as they are copied into the RTEMS
    99132# build tree.
     
    110143def installEmptyFile(src):
    111144        dst = RTEMS_DIR + '/' + PREFIX + '/' + src.replace('rtems/', '')
     145        if isVerbose == True:
     146                print "Install empty - " + dst
     147        if isDryRun == True:
     148                return
    112149        try:
    113150                os.makedirs(os.path.dirname(dst))
     
    136173        dst = RTEMS_DIR + '/' + PREFIX + '/' + org # + org.replace('rtems/', '')
    137174        dst = mapContribPath(dst)
     175        if isVerbose == True:
     176                print "Install Header - " + src + " => " + dst
     177        if isDryRun == True:
     178                return
    138179        try:
    139180                os.makedirs(os.path.dirname(dst))
     
    151192        dst = RTEMS_DIR + '/' + PREFIX + '/' + org
    152193        dst = mapContribPath(dst)
     194        if isVerbose == True:
     195                print "Install Source - " + src + " => " + dst
     196        if isDryRun == True:
     197                return
    153198        try:
    154199                os.makedirs(os.path.dirname(dst))
     
    167212        src = mapContribPath(src)
    168213        dst = FreeBSD_DIR + '/' + org
     214        if isVerbose == True:
     215                print "Revert Header - " + src + " => " + dst
     216        if isDryRun == True:
     217                return
    169218        try:
    170219                os.makedirs(os.path.dirname(dst))
     
    182231        src = mapContribPath(src)
    183232        dst = FreeBSD_DIR + '/' + org
     233        if isVerbose == True:
     234                print "Revert Source - " + src + " => " + dst
     235        if isDryRun == True:
     236                return
    184237        try:
    185238                os.makedirs(os.path.dirname(dst))
     
    195248
    196249def deleteOutputDirectory():
     250        if isVerbose == True:
     251                print "Delete Directory - " + RTEMS_DIR
     252        if isDryRun == True:
     253                return
    197254        try:
    198255                shutil.rmtree(RTEMS_DIR)
     
    228285
    229286        def createMakefile(self):
     287                if isVerbose == True:
     288                        print "Create Makefile"
     289                if isDryRun == True:
     290                        return
    230291                data = 'include config.inc\n' \
    231292                        '\n' \
Note: See TracChangeset for help on using the changeset viewer.