*&---------------------------------------------------------------------*
*& Report Z_ZAKE_SVN
*&
*&---------------------------------------------------------------------*
*& Checkout / Checkin the ZAKE_SVN Project
*&
*&---------------------------------------------------------------------*
REPORT zake_svn_a2x.
CONSTANTS cl_svn TYPE seoclsname VALUE 'ZCL_ZAKE_SVN'.
CONSTANTS cl_tortoise_svn TYPE seoclsname VALUE 'ZCL_ZAKE_TORTOISE_SVN'.
DATA package TYPE devclass.
DATA zake TYPE REF TO zake.
DATA zake_objects TYPE scts_tadir.
DATA files TYPE string_table.
DATA file LIKE LINE OF files.
DATA zake_build TYPE string.
DATA zake_nuggetname TYPE string.
DATA comment_str TYPE string.
DATA loclpath_str TYPE string.
DATA svnpath_str TYPE string.
DATA username_str TYPE string.
DATA password_str TYPE string.
DATA class TYPE seoclsname.
DATA: ex TYPE REF TO zcx_saplink,
message TYPE string.
SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE a.
PARAMETERS:
checkout TYPE flag RADIOBUTTON GROUP act,
update TYPE flag RADIOBUTTON GROUP act DEFAULT 'X',
checkin TYPE flag RADIOBUTTON GROUP act.
SELECTION-SCREEN END OF BLOCK a.
SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE b.
PARAMETERS:
svn TYPE flag RADIOBUTTON GROUP cl,
tortoise TYPE flag RADIOBUTTON GROUP cl.
SELECTION-SCREEN END OF BLOCK b.
SELECTION-SCREEN BEGIN OF BLOCK c WITH FRAME TITLE c.
PARAMETERS:
loclpath TYPE char512 DEFAULT 'C:\ZAKE_SVN\Projects\abap2xlsx' LOWER CASE OBLIGATORY,
zakebuil TYPE char512 DEFAULT 'C:\ZAKE_SVN\Projects\abap2xlsx\build\NUGG_ABAP2XLSX_V_1_0.nugg' LOWER CASE OBLIGATORY,
zakenugg TYPE char512 DEFAULT 'C:\ZAKE_SVN\Projects\abap2xlsx\nuggs\NUGG_ABAP2XLSX_V_1_0.nugg' LOWER CASE OBLIGATORY,
svnpath TYPE char512 DEFAULT 'https://abap2xlsx.googlecode.com/svn/trunk/abap2xlsx' LOWER CASE OBLIGATORY,
comment TYPE char512 DEFAULT '' LOWER CASE,
username TYPE char512 LOWER CASE,
password TYPE char512 LOWER CASE,
testrun TYPE flag DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK c.
INITIALIZATION.
a = 'Action'.
b = 'Version Controll Program'.
c = 'Parameters'.
START-OF-SELECTION.
svnpath_str = svnpath.
loclpath_str = loclpath.
zake_build = zakebuil.
zake_nuggetname = zakenugg.
comment_str = comment.
SELECT * INTO TABLE zake_objects FROM tadir WHERE devclass = 'ZABAP2XLSX'.
DELETE zake_objects WHERE object = 'DEVC'.
TRY.
IF svn = 'X'.
class = cl_svn.
ELSE.
class = cl_tortoise_svn.
ENDIF.
CREATE OBJECT zake
TYPE
(class)
EXPORTING
i_svnpath = svnpath_str
i_localpath = loclpath_str.
zake->set_testrun( testrun ).
IF checkin = 'X'.
zake->set_package( 'ZA2X' ).
zake->set_checkin_objects( zake_objects ).
zake->create_slinkees( zake_nuggetname ).
" Build a complete package for download
* zake->set_package( 'ZA2X' ).
* zake->set_checkin_objects( zake_objects ).
* " Let's add the CMD Scripts to the complete package
* CONCATENATE loclpath 'bin/svn-script.cmd' INTO file.
* APPEND file TO files.
* CONCATENATE loclpath 'bin/tortoise-svn-script.cmd' INTO file.
* APPEND file TO files.
* zake->add_files_to_zip( files ).
* " We don't want that for the complete Package Slinkees are created
* " in the ZAKE folder
* zake->download_slinkees_to_lm = space.
* zake->download_nugget_to_lm = space.
* zake->create_slinkees( zake_nuggetname ).
IF testrun IS INITIAL.
zake->checkin( comment_str ).
ENDIF.
ELSE.
IF update = 'X'.
zake->update( ).
ELSE.
zake->checkout( ).
ENDIF.
" zake->install_slinkees_from_lm( testrun ).
zake->install_objects( zake_objects ).
ENDIF.
CATCH zcx_saplink INTO ex.
message = ex->msg.
WRITE: / 'An Error occured: ', message.
ENDTRY.