Code covered by the BSD License  

Highlights from
deploypcode - recursively pcode files with help attached

5.0

5.0 | 2 ratings Rate this file 38 Downloads (last 30 days) File Size: 4.2 KB File ID: #26919
image thumbnail

deploypcode - recursively pcode files with help attached

by Sven

 

11 Mar 2010 (Updated 29 May 2012)

DEPLOYPCODE recursively searches a directory for .m files, creating encrypted .p files with .m help

| Watch this File

File Information
Description

This entry is ideal for those who have a project they need to deploy to P-files, but they want to retain HELP contents for all of their deployed files.
--
SAHMDEPLOYPCODE recursively creates p-code versions of m-files in a given folder

SAHMDEPLOYPCODE(SOURCE, TARGET) will recursively search the SOURCE folder for all .m files and
deploy them as P-files to the TARGET folder using default options below.

SAHMDEPLOYPCODE(..., 'PropertyName',VALUE,'PropertyName',VALUE,...) uses the following options
when deploying p-code:

  'recurse' - When true (default) will recursively deploy p-code from SOURCE folder.

  'ignoreStrings' - String or cell array of strings of filenames to ignore. Regular expression
                    syntax is used.

  'ignoreSVN' - Additional true/false option to ignore ".svn" directories. Equivalent to
                    adding {'^\.svn$'} to "ignoreStrings". Defaults to TRUE for convenience.

  'includeHelp' - MATLAB's pcode() removes all comments including the help section from
                    files when run. Setting this option to true (default) will export an
                    additional .m file containing only the help contents of the file being
                    deployed. This means that myFunction.m will be deployed to myFunction.p,
                    but calling "help myFunction" will still return help text.

  'updateOnly' - When true, destination p-files will only be created if they don't yet
                    exist or are older than the m-file being encoded. Defaults to false.

  'copyDirectStrings' - String or cell array of strings of filenames to copy directly to TARGET
                    folder without encryption. Regular expression syntax is used.

  'copyFigFiles' - Additional true/false option to copy ".fig" files directly. Equivalent to
                    adding {'\.fig$'} to "copyDirectStrings". Defaults TRUE for convenience.

  'flattenFileTree' - When true (default), regular m-files are deployed as p-files only to the
                    TARGET folder initially provided (rather than under any subdirectories).
                    When this option is set to FALSE, the file structure under the SOURCE
                    directory will be replicated at the TARGET.

Example:
deploypcode('C:\myMfilesDir\','C:\encryptedVersion\','updateOnly',true)

written by Sven Holcombe Oct 2011

Author's note:
While I am generally against unnecessary encryption of .m files (it would be against the spirit of this file exchange, for one), I needed a tool such as this one for my work, and thought that others may need the same.

Acknowledgements

The author wishes to acknowledge the following in the creation of this submission:
genpath_exclude

MATLAB release MATLAB 7.13 (2011b)
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (5)
15 Feb 2012 Greg Perrott

Any chance you could implement the option to turn off flattenFileTree?

Great script by the way.

15 Feb 2012 Sven

@Greg: Sure, I've uploaded a new version that allows the flattenTreeFile = false option to take effect.

17 Feb 2012 Matthew

Great work. This is very nice code. It is obvious that you enjoyed coding this function. Comments like "Tricky little function..." and "Sneakily force the..." are gems :)

23 May 2012 DBS

Great function Sven, saved me a lot of time! But if it transferred other optional files it would be perfect. For instance in my case, I needed to deploy some .txt, .pdf and .xls from source. Meanwhile, I'll try to insert it in your code. Cheers!

25 May 2012 Sven

@DBS: Glad it was helpful. I've just uploaded a new version that allows 'copyDirectStrings' as a parameter, where you can set file names (via a regexp) that you want to copy directly from source to target.
Is this what you were looking for?

Please login to add a comment or rating.
Updates
20 Oct 2011

Added .m help-file deployment, and rewrote to remove dependency on genpath_recurse thus improve speed.

11 Nov 2011

Added "updateOnly" functionality and improved the "p-file is older than m-file" issue generated when a class function file is p-coded.

15 Feb 2012

Added a "flattenTreeFile = false" option, as requested by Greg

29 May 2012

Added 'copyDirectStrings' parameter to allow direct copy of chosen files as per DBSs request

Tag Activity for this File
Tag Applied By Date/Time
pcode Sven 12 Mar 2010 10:43:56
utility Sven 12 Mar 2010 10:43:56

Contact us at files@mathworks.com