SVN__CommitCommand.st
author fm
Mon, 19 Oct 2009 14:52:48 +0200
changeset 492 74ff0960961c
parent 433 95b4c4c85095
child 699 d37746f00283
permissions -rw-r--r--
*** empty log message ***

"{ Package: 'stx:libsvn' }"

"{ NameSpace: SVN }"

WCPathCommand subclass:#CommitCommand
	instanceVariableNames:'message url username password noAuthCache'
	classVariableNames:''
	poolDictionaries:''
	category:'SVN-Private-Commands'
!


!CommitCommand methodsFor:'accessing'!

message
    ^ message

    "Created: / 19-03-2008 / 15:59:36 / janfrog"
!

message:aString
    message := aString.

    "Created: / 19-03-2008 / 15:59:36 / janfrog"
    "Modified: / 31-03-2008 / 14:20:11 / janfrog"
!

url
    ^ url

    "Created: / 03-10-2008 / 18:19:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

url:something
    url := something.

    "Created: / 03-10-2008 / 18:19:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !

!CommitCommand methodsFor:'executing'!

execute
    ^ [ super execute ] on:SVN::AuthorizationError
	do:[:ex |
    |credentials dialog|

    credentials := Credentials new username:OperatingSystem getLoginName.
    credentials := (dialog := CredentialsDialog new)
		model:credentials;
		subtitle:self url;
		open.
    credentials
	ifNil:[ ex pass ]
	ifNotNil:[
	    username := credentials username.
	    password := credentials password.
	    noAuthCache := dialog savePassword not.
	    self execute
	]
]

    "Created: / 03-10-2008 / 18:22:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
    "Modified: / 15-07-2009 / 12:09:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !

!CommitCommand methodsFor:'executing - private'!

svnCmd
    "raise an error: must be redefined in concrete subclass(es)"

    ^'commit'

    "Created: / 16-03-2008 / 07:47:00 / janfrog"
!

svnCmdArgumentsOn:arg

    arg nextPut:'--message'; nextPut: (message ? '').
    super svnCmdArgumentsOn:arg

    "Created: / 19-03-2008 / 15:59:13 / janfrog"
    "Modified: / 31-03-2008 / 14:13:03 / janfrog"
!

svnGlobalArgumentsOn: argStream

    super svnGlobalArgumentsOn: argStream.

    "/argStream nextPut:'--config-dir'; nextPut:'/tmp/.svn'; nextPut:'--no-auth-cache'.

    username ifNotNil:
	[argStream
	    nextPut: '--username';
	    nextPut: username].
    password ifNotNil:
	[argStream
	    nextPut: '--password';
	    nextPut: password].
    noAuthCache == true ifTrue:
	[argStream
	    nextPutAll:'--no-auth-cache']

    "Created: / 31-10-2008 / 09:30:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

svnProcessCommandOutput:arg1 err:arg2
    "Superclass says that I am responsible to implement this method"

    ^ arg1 contents

    "Created: / 03-10-2008 / 16:31:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !

!CommitCommand class methodsFor:'documentation'!

version
    ^ '$Header$'
!

version_CVS
    ^ '$Header$'
!

version_SVN
    ^'§Id: SVN__CommitCommand.st 100 2009-07-15 18:35:02Z vranyj1 §'
! !