CmdLineOption.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 22 Sep 2015 16:28:42 +0100
branchjv
changeset 18759 c1217211909c
parent 18011 deb0c3355881
child 19988 148721e96482
permissions -rw-r--r--
Changed identification strings to contain jv-branch ...to make explicit that this distribution is not the official one used by eXept and therefore that eXept is not to be blamed in case of any problem.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13402
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
     1
"
13938
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
     2
 COPYRIGHT (c) 2006 by eXept Software AG
13402
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
     3
              All Rights Reserved
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
     4
13938
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
     5
 This software is furnished under a license and may be used
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
     6
 only in accordance with the terms of that license and with the
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
     8
 be provided or otherwise made available to, or used by, any
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
     9
 other person.  No title to or ownership of the software is
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
    10
 hereby transferred.
13402
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    11
"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    12
"{ Package: 'stx:libbasic' }"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    13
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    14
Object subclass:#CmdLineOption
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    15
	instanceVariableNames:'action description short long'
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    16
	classVariableNames:''
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    17
	poolDictionaries:''
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    18
	category:'System-Support-Command line'
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    19
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    20
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    21
!CmdLineOption class methodsFor:'documentation'!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    22
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    23
copyright
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    24
"
13938
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
    25
 COPYRIGHT (c) 2006 by eXept Software AG
13402
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    26
              All Rights Reserved
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    27
13938
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
    28
 This software is furnished under a license and may be used
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
    29
 only in accordance with the terms of that license and with the
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
    30
 inclusion of the above copyright notice.   This software may not
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
    31
 be provided or otherwise made available to, or used by, any
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
    32
 other person.  No title to or ownership of the software is
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
    33
 hereby transferred.
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
    34
"
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
    35
!
13482
769530195abb copyright
Claus Gittinger <cg@exept.de>
parents: 13402
diff changeset
    36
13938
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
    37
optionsFor: anObject
13482
769530195abb copyright
Claus Gittinger <cg@exept.de>
parents: 13402
diff changeset
    38
13938
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
    39
    "Returns a collection of command line options for
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
    40
     given object."
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
    41
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
    42
    ^anObject class allSelectors  
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
    43
                select:[:sel|sel startsWith: 'cmdlineOption']
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
    44
                thenCollect:[:sel|anObject perform: sel].
13402
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    45
! !
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    46
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    47
!CmdLineOption methodsFor:'accessing'!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    48
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    49
action
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    50
    ^ action
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    51
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    52
    "Created: / 28-01-2009 / 11:49:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    53
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    54
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    55
action:aBlockOrMessageSend
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    56
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    57
    aBlockOrMessageSend numArgs > 1 ifTrue:
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    58
        [CmdLineOptionError raiseErrorString: 'Action must be zero-or-one arg block/message send'].    
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    59
    action := aBlockOrMessageSend.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    60
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    61
    "Created: / 28-01-2009 / 11:49:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    62
    "Modified: / 16-06-2009 / 15:46:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    63
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    64
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    65
description
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    66
    ^ description
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    67
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    68
    "Created: / 28-01-2009 / 11:49:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    69
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    70
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    71
description:aString
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    72
    description := aString.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    73
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    74
    "Created: / 28-01-2009 / 11:49:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    75
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    76
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    77
long
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    78
    ^ long
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    79
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    80
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    81
long:aString
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    82
    long := aString.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    83
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    84
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    85
short
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    86
    ^ short
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    87
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    88
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    89
short:aCharacterOrString
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    90
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    91
    (aCharacterOrString isCharacter 
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    92
        and:[aCharacterOrString isAlphaNumeric])
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    93
            ifTrue:[short := aCharacterOrString]
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    94
            ifFalse:[self error: 'short option name should be alphanumeric character']
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    95
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    96
    "Modified: / 29-05-2009 / 16:05:46 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    97
! !
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    98
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    99
!CmdLineOption methodsFor:'printing & storing'!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   100
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   101
printOn: stream
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   102
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   103
    super printOn: stream.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   104
    stream nextPut:$(.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   105
    short ifNotNil:[stream nextPut: $-; nextPut: short].
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   106
    (short notNil and: [long notNil]) ifTrue:[stream nextPut:$|].
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   107
    long ifNotNil:[stream nextPut: $-;  nextPut: $-; nextPutAll: long].
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   108
    stream nextPut:$)
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   109
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   110
    "Created: / 08-06-2009 / 14:48:59 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   111
! !
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   112
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   113
!CmdLineOption methodsFor:'processing'!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   114
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   115
process
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   116
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   117
    action value
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   118
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   119
    "Created: / 08-06-2009 / 14:35:01 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   120
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   121
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   122
process: value
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   123
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   124
    action value: value
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   125
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   126
    "Created: / 08-06-2009 / 14:35:08 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   127
! !
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   128
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   129
!CmdLineOption methodsFor:'queries'!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   130
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   131
hasParam
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   132
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   133
    ^action numArgs = 1
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   134
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   135
    "Created: / 08-06-2009 / 13:45:41 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   136
! !
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   137
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   138
!CmdLineOption class methodsFor:'documentation'!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   139
13938
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
   140
version
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
   141
    ^'$Header: /cvs/stx/stx/libbasic/CmdLineOption.st,v 1.3 2012-01-13 10:58:29 vrany Exp $'
13402
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   142
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   143
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   144
version_SVN
13938
c7c6a5463841 Updated from SVN
vrany
parents: 13482
diff changeset
   145
    ^ '§Id: CmdLineOption.st 10737 2011-11-06 21:23:48Z vranyj1 §'
13402
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   146
! !