<!DOCTYPE author [ <!ENTITY yes_re "qr/\Ay(es)?\z/i" > <!ENTITY no_re "qr/\Ano?\z/i" > <!ENTITY non_empty_re "qr/./" > ]> <machine id="VCP::Dest::p4" xmlns="http://slaysys.com/StateML/1.0"> <!-- ================ TRANSITIONS =================== --> <state id="dest_p4_run_p4d_prompt" class-ids="prompt_class"> <name>Launch a p4d for the destination</name> <description> If you would like to insert into an offline repository in a local directory, vcp can launch a 'p4d' daemon for you in that directory. It will use a random high numbered TCP port. </description> <entry-handler> if ( $ui->in_edit_mode ) { $default = $ui->dest->{P4_RUN_P4D} ? "yes" : "no" ; $is_current_value = 1; } else { $default = "no"; } </entry-handler> <arc from="dest_prompt" guard="'p4'"> <description>p4</description> <handler> $ui->new_dest( $answer ); </handler> </arc> <arc to="dest_p4_p4d_dir_prompt" guard="'yes'"> <description>yes</description> <handler> my $old = $ui->dest->{P4_RUN_P4D} ? 1 : 0; $answer = 1; $ui->dest->repo_server( undef ) if $ui->in_edit_mode and $old != $answer; $ui->dest->{P4_RUN_P4D} = $answer; </handler> </arc> <arc to="dest_p4_host_prompt" guard="'no'"> <description>no</description> <handler> my $old = $ui->dest->{P4_RUN_P4D} ? 1 : 0; $answer = 0 ; $ui->dest->repo_server( undef ) if $ui->in_edit_mode and $old != $answer; $ui->dest->{P4_RUN_P4D} = $answer; </handler> </arc> </state> <state id="dest_p4_p4d_dir_prompt" class-ids="prompt_class"> <name>Destination P4ROOT</name> <description> The directory of the destination repository, p4d will be launched here. </description> <entry-handler> if ( $ui->in_edit_mode ) { $default = $ui->dest->repo_server ; $is_current_value = 1; } </entry-handler> <arc to="dest_p4_user_prompt" guard="&non_empty_re;"> <handler> # will set repo_server $ui->dest->ui_set_p4d_dir( $answer ); </handler> </arc> </state> <state id="dest_p4_host_prompt" class-ids="prompt_class"> <name>Destination P4PORT</name> <description> The hostname/IP address and port of the p4d to write to, separated by a colon. Defaults to the default P4PORT variable as reported by the 'p4 set' command (with a final default to "perforce:1666" if the p4 set command does not return anything). </description> <entry-handler> my $h = $ui->dest->p4_get_settings; if ($ui->in_edit_mode) { $default = $ui->dest->repo_server ; $is_current_value = 1; } else { $default = empty ( $h->{P4HOST} ) ? "perforce:1666" : $h->{P4HOST} ; } </entry-handler> <arc to="dest_p4_user_prompt" guard="&non_empty_re;"> <description>perforce:1666</description> <handler> $ui->dest->repo_server( $answer ) unless empty $answer; </handler> </arc> </state> <state id="dest_p4_user_prompt" class-ids="prompt_class"> <name>Destination P4USER</name> <description> The username to connect to the destination p4d with. Defaults to the user reported by the 'p4 set' command (with a final default to the USER environment variable if the p4 set command does not return anything). </description> <entry-handler> if ( $ui->in_edit_mode ) { $default = $ui->dest->repo_user; $is_current_value = 1; } else { my $h = $ui->dest->p4_get_settings; $default = empty ( $h->{P4USER} ) ? ( empty $ENV{USER} ? undef : $ENV{USER}) : $h->{P4USER} ; } </entry-handler> <arc to="dest_p4_password_prompt" guard="&non_empty_re;"> <handler> $ui->dest->repo_user( $answer ) unless empty $answer; </handler> </arc> </state> <state id="dest_p4_password_prompt" class-ids="prompt_class"> <name>Destination P4PASSWD</name> <description> The P4PASSWD needed to access the server. Leave blank to use the default reported by P4PASSWD. WARNING: entering a password will cause it to be echoed in plain text to the terminal. </description> <entry-handler> if ($ui->in_edit_mode ) { unless ( empty $ui->dest->repo_password ) { $default = "** current password **"; $is_current_value = 1; } } else { my $h = $ui->dest->p4_get_settings; $default = "** current P4PASSWD **" unless empty $h->{P4PASSWD} ; } </entry-handler> <arc to="dest_p4_filespec_prompt" guard="&non_empty_re;"> <handler> if ( $ui->in_edit_mode ) { $answer = $ui->dest->repo_password if $answer eq "** current password **"; } else { my $h = $ui->dest->p4_get_settings ; $answer = $h->{P4PASSWD} if $answer eq "** current P4PASSWD **"; } $ui->dest->repo_password( $answer ) unless empty $answer; </handler> </arc> </state> <state id="dest_p4_filespec_prompt" class-ids="prompt_class"> <name>Destination File Specification</name> <description> Where to place the transferred revisions. This is a perforce repository spec and must begin with "//" and a depot name ("//depot"), not a local filesystem spec or a "//client" or "//label" spec. </description> <entry-handler> if ( $ui->in_edit_mode ) { $default = $ui->dest->repo_filespec; $is_current_value = 1; } </entry-handler> <arc to="wrapup" guard="qr#\A//#"> <description>//depot/directory-path/...</description> <handler> $ui->dest->repo_filespec( $answer ); </handler> </arc> </state> </machine>
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#28 | 5397 | Barrie Slaymaker | - Update P4PASSWD prompts to allow for not setting P4PASSWD | ||
#27 | 4581 | Barrie Slaymaker | - user prompts have been improved, but not tested | ||
#26 | 4064 | Barrie Slaymaker |
- RevML is no longer offered in the UI - Sources and dests are given an id in the UI - The .vcp file name defaulting now works |
||
#25 | 3859 | Barrie Slaymaker | - New UI files | ||
#24 | 3647 | Barrie Slaymaker |
- All UI prompts & descriptions rewritten. - Minor tweak to VCP::Dest::p4 P4USER defaulting |
||
#23 | 3644 | Barrie Slaymaker | - Add Save & Run options to end of UI | ||
#22 | 3640 | Barrie Slaymaker |
- xmllint no longer require to build UI - UI now offers multiple choices where appropriate |
||
#21 | 3572 | John Fetkovich | added y/n question to accept default of user_id | ||
#20 | 3547 | John Fetkovich | Added defaults to yes/no questions (no in all cases) | ||
#19 | 3538 | John Fetkovich | bug fix P4PASSWD defaulting | ||
#18 | 3518 | John Fetkovich | more interactive ui improvements | ||
#17 | 3502 | John Fetkovich | removed obsolete commented out (source,dest)->init calls in stml files | ||
#16 | 3486 | John Fetkovich | moved (source or dest)->init calls to bin/vcp | ||
#15 | 3455 | John Fetkovich | remove "change branch rev #1" yes/no option from interactive interface | ||
#14 | 3403 | John Fetkovich |
options given on all multiple choice prompts, and most free-form prompts where it makes sense |
||
#13 | 3397 | John Fetkovich | prompt language improvement | ||
#12 | 3396 | John Fetkovich | prompt language improvements | ||
#11 | 3395 | John Fetkovich | various ui refinements | ||
#10 | 3389 | John Fetkovich | made change_branch_rev prompt have both yes & no exit arcs | ||
#9 | 3383 | John Fetkovich |
removed setting of repo_id, it's now done in 'sub init' in the sources and dests |
||
#8 | 3375 | John Fetkovich | more ui changes | ||
#7 | 3374 | John Fetkovich | set repo_id in branch running in local directory also | ||
#6 | 3306 | Barrie Slaymaker | Add StateML namespace support | ||
#5 | 3305 | John Fetkovich |
added calls to set fields in p4 source and dest state machines, and then call to init |
||
#4 | 3289 | John Fetkovich | |||
#3 | 3260 | John Fetkovich | Improve some help texts | ||
#2 | 3254 | Barrie Slaymaker | Redo machine naminf convention. | ||
#1 | 3252 | John Fetkovich | added state machine parts for these destinations |