VCP-Source-vss.stml #11

  • //
  • guest/
  • perforce_software/
  • revml/
  • ui_machines/
  • VCP-Source-vss.stml
  • View
  • Commits
  • Open Download .zip Download (5 KB)
<!DOCTYPE author [
  <!ENTITY non_empty_re "qr/./" >
]>

<machine id="VCP::Source::vss" xmlns="http://slaysys.com/StateML/1.0">

  <!-- ================ TRANSITIONS =================== -->

  <state id="source_vss_vssroot_prompt" class-ids="prompt_class">
    <name>Source SSDIR</name>

    <description>

The directory containing the srcsafe.ini file for the source
repository.

    </description>

    <entry-handler>
      if ( $ui->in_edit_mode ) {
        $default = $ui->source->repo_server;
        $is_current_value = 1;
      }
      else {
        $default = empty( $ENV{SSDIR} ) ? undef : $ENV{SSDIR};
      }
    </entry-handler>

    <arc from="source_type_prompt" guard="'vss'" >
      <description>vss</description>
      <handler>
        $ui->new_source( $answer );
      </handler>
    </arc>

    <arc to="source_vss_user_prompt" guard="&non_empty_re;">
      <handler>
        $ui->source->repo_server( $answer )
            unless empty $answer;
      </handler>
    </arc>

  </state>



  <state id="source_vss_user_prompt" class-ids="prompt_class">
    <name>Source SSUSER</name>
    <description>

Enter the SSUSER value needed to access the server.  Defaults to
the current environment's SSUSER or 'Admin'.

    </description>
    <entry-handler>
      if ( $ui->in_edit_mode ) {
        $default = $ui->source->repo_user;
        $is_current_value = 1;
      }
      else {
        $default = empty( $ENV{SSUSER} ) ? "Admin" : $ENV{SSUSER} ;
      }
    </entry-handler>

    <arc to="source_vss_password_prompt" guard="&non_empty_re;">
      <handler>
        $ui->source->repo_user( $answer )
            unless empty $answer;
      </handler>
    </arc>
  </state>


  <state id="source_vss_password_prompt" class-ids="prompt_class">
    <name>Source SSPWD</name>
    <description>

If a password (SSPWD) is needed to access the server, enter
it here.  Defaults to the current SSPWD if one is set.

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->source->repo_password ) {
          $default = "** current password **";
          $is_current_value = 1;
        }
      }
      else {
        $default = "** current SSPWD **"
          unless empty $ENV{SSPWD};
      }
    </entry-handler>

    <arc to="source_vss_filespec_prompt">
      <handler>
        if ( $ui->in_edit_mode ) {
            $answer = $ui->source->repo_password
                if $answer eq "** current password **";
        }
        else {
            $answer = $ENV{SSPWD}
                if $answer eq "** current SSPWD **";
        }
        $ui->source->repo_password( $answer )
            unless empty $answer;
      </handler>
    </arc>
  </state>


  <state id="source_vss_filespec_prompt" class-ids="prompt_class">
    <name>Source VSS filespec</name>
    <description>

Enter the vss filespec of the file(s) to copy, with or
without a leading "$/" or "/" (all names are taken as
absolute).  To copy more than one file, use a "..." or "*"
wildcard:

    ...                      Copy entire repository
    project1/...             Copy entire project
    project1/file            Copy one file
    project1/dir/...         Copy a subdirectory
    project1/dir/file*.bas   Copy a set of files

    </description>

    <entry-handler>
      if ( $ui->in_edit_mode ) {
        $default = $ui->source->repo_filespec;
        $is_current_value = 1;
      }
      else {
        $default = "...";
      }
    </entry-handler>

    <arc to="source_vss_undocheckout_prompt" guard="&non_empty_re;">
      <handler>
        $ui->source->repo_filespec( $answer );
      </handler>
    </arc>
  </state>


  <state id="source_vss_undocheckout_prompt" class-ids="prompt_class">
    <name>Issue "ss undocheckout" as needed</name>

    <description>

If set, VCP will undo users' checkouts when it runs in to
the "File ... is checked out by ..." error.  This occurs, at
least, when scanning metadata for a checked-out file when
there is also a deleted version of the same file.

    </description>

    <entry-handler>
      if ( $ui->in_edit_mode ) {
        $default = $ui->source->{VSS_UNDOCHECKOUT} ? "yes" : "no";
        $is_current_value = 1;
      }
      else {
        $default = "no";
      }
    </entry-handler>

    <arc to="dest_id_prompt" guard="'yes'">
      <description>yes</description>
      <handler>
        $ui->source->{VSS_UNDOCHECKOUT} = 1;
      </handler>
    </arc>

    <arc to="dest_id_prompt" guard="'no'">
      <description>no</description>
      <handler>
        $ui->source->{VSS_UNDOCHECKOUT} = 0;
      </handler>
    </arc>

  </state>

</machine>
# Change User Description Committed
#13 5398 Barrie Slaymaker - Tweak source .stml files to re-enable a multiple
         choice listing.
#12 4581 Barrie Slaymaker - user prompts have been improved, but not tested
#11 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
#10 3859 Barrie Slaymaker - New UI files
#9 3675 Barrie Slaymaker - More of a .vcp file is now editable
#8 3669 Barrie Slaymaker - VCP-Source-*.stml now use new_source
#7 3654 Barrie Slaymaker - VCP-Source-vss UI prompt is more clear
- VCP::Source::vss' --cd option removed until a need is found
#6 3647 Barrie Slaymaker - All UI prompts & descriptions rewritten.
- Minor tweak to VCP::Dest::p4 P4USER defaulting
#5 3640 Barrie Slaymaker - xmllint no longer require to build UI
- UI now offers multiple choices where appropriate
#4 3395 John Fetkovich various ui refinements
#3 3306 Barrie Slaymaker Add StateML namespace support
#2 3254 Barrie Slaymaker Redo machine naminf convention.
#1 3253 John Fetkovich Added source::vss user interface