⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mk_svndoc.pl

📁 subversion-1.4.3-1.tar.gz 配置svn的源码
💻 PL
字号:
#!perl########################################################################### FILE       mk_svndoc# PURPOSE    Making MS HTML-help from the Subversion source documentation# ====================================================================# Copyright (c) 2000-2005 CollabNet.  All rights reserved.## This software is licensed as described in the file COPYING, which# you should have received as part of this distribution.  The terms# are also available at http://subversion.tigris.org/license-1.html.# If newer versions of this license are posted there, you may use a# newer version instead, at your option.## This software consists of voluntary contributions made by many# individuals.  For exact contribution history, see the revision# history and logs, available at http://subversion.tigris.org/.# ====================================================================########################################################################### INCLUDED LIBRARY FILESuse strict;use File::Basename;use Cwd;use Win32;require 'cmn.pl';########################################################################### FUNCTION DECLARATIONSsub Main;sub CheckForProgs;sub CopyAndEolU2W;sub MkDirP;########################################################################### CONSTANTS AND GLOBAL VARIABLES# Sorces and destinationsmy $g_PathDocRoot=&cmn_ValuePathfile('path_svnbook');my $g_PathMiscIn=&cmn_ValuePathfile('path_setup_in');my %g_FilesToCpAndConv=    (        'COPYING', 'subversion\SubversionLicense.txt',        'README', 'subversion\Readme.dist',        'doc\user\lj_article.txt', 'doc\lj_article.txt',        'doc\programmer\WritingChangeLogs.txt', 'doc\WritingChangeLogs.txt',     );# Programs needed for making the documentationmy $g_Prog_hhc='';my %g_ProgsInPath=    (        'libxslt is needed for converting the XML-documentaion.',            'xsltproc.exe',        'iconv is needed by libxslt and libxslt for converting the XML-documentaion.',            'iconv.exe',        'libxml2 is needed by libxslt for converting the XML-documentaion.',            'libxml2.dll'    );########################################################################### PROGRAM ENTRANCEMain;########################################################################### FUNCTION DEFINITIONS#-------------------------------------------------------------------------# FUNCTION   Main# DOES       This is the program's main functionsub Main{    my $CntMkHtmBat='';    my %Values;    my $RootSvnBook=&cmn_ValuePathfile('path_svnbook');    my $DocOut=&cmn_ValuePathfile('path_setup_in');    my $PathWinIsPack='';    my $Pwd='';    my $CntVerXml='';    # Get absolute path of the current PWD's parent    $PathWinIsPack=getcwd;    $Pwd=basename($PathWinIsPack);    $PathWinIsPack =~ s/\//\\/g;    $PathWinIsPack =~ s/\\$Pwd$//;    # Make $DocOut to an absolute path    if ($DocOut eq 'in')      {        $DocOut = "$PathWinIsPack\\in\\doc";      }    #Make the out dir in "$RootSvnBook\src if needed    &MkDirP ("$RootSvnBook\\src\\out") unless (-e "$RootSvnBook\\src\\out");    #Check for needed programs    &CheckForProgs;    &CopyAndEolU2W;    #Create the mk_htmlhelp.bat file from ..\templates\\mk_htmlhelp.bat and    #collected data, save it to $RootSvnBook\src\out\mk_htmlhelp.bat    %Values =      (        tv_path_hhc => $g_Prog_hhc,        tv_bookdest => $DocOut      );    $CntMkHtmBat=&cmn_Template("$PathWinIsPack\\templates\\mk_htmlhelp.bat", \%Values);    open (FH_HHP, ">" . "$RootSvnBook\\src\\out\\mk_htmlhelp.bat");        print FH_HHP $CntMkHtmBat;    close (FH_HHP);    #Copy style sheet and background image to $RootSvnBook\src\out    system ("copy /Y ..\\templates\\svn-doc.css $RootSvnBook\\src\\out");    system ("copy /Y ..\\images\\svn_bck.png $RootSvnBook\\src\\out");    # Set the revision number in $RootSvnBook\src\en\book\version.xml    chdir "$RootSvnBook\\src\\en";    $CntVerXml=`svnversion .`;    chomp($CntVerXml);    open (FH_VERXML, ">" . "$RootSvnBook\\src\\en\\book\\version.xml");        print FH_VERXML "<!ENTITY svn.version \"Revision $CntVerXml\">";    close (FH_VERXML);    # Make the chm file    chdir "$RootSvnBook\\src\\out";    system ("$RootSvnBook\\src\\out\\mk_htmlhelp.bat");    chdir $Pwd;}#-------------------------------------------------------------------------# FUNCTION   CheckForProgs# DOES       Checking if required programs existssub CheckForProgs{    my @MissingProgs;    my @SysPath;    my $bMissingProgs=0;    my $Prog2CheckDesc='';    my $Prog2Check='';    # Fill the %PATH% in @SysPath    @SysPath = split (/;/, $ENV{PATH});    # Check for the needed programs who should be in the %PATH%    while (($Prog2CheckDesc, $Prog2Check) = each %g_ProgsInPath)      {        my $bProg2CheckExists=0;        for (@SysPath)          {            if (-e "$_\\$Prog2Check")              {                $bProg2CheckExists=1;                last;              }          }        if (! $bProg2CheckExists)          {            $bMissingProgs = 1;            push @MissingProgs, $Prog2CheckDesc;          }      }    # Check for MS HTML help compiler    $g_Prog_hhc = &cmn_ValuePathfile('path_hhc');    $g_Prog_hhc = "$g_Prog_hhc\\hhc.exe";    if (! -e $g_Prog_hhc)      {        $bMissingProgs = 1;        push @MissingProgs, 'Microsoft HTML Help Workshop is needed for making the HTML-help file';      }    $g_Prog_hhc = "\"$g_Prog_hhc\"";    if ($bMissingProgs)      {        my $Msg="One or more required programs needed for making the docs are missing:\n\n";           for (@MissingProgs)          {            $Msg=$Msg . "  - $_\n";          }                    $Msg=$Msg . "\nPlease, check that everything are installed properly as described in\n";          $Msg=$Msg . "the documentation in packages\\windows-innosetup\\tools\\readme.txt\n";          Win32::MsgBox($Msg, 0+MB_ICONSTOP, 'ERROR: Missing required programs.');          exit 1;      }}#-------------------------------------------------------------------------# FUNCTION   CopyAndEolU2W# DOES       Converts Unix eol's to Windows eol's in a file and saves it to#            another location.sub CopyAndEolU2W{    my $FileSrc='';    my $FileDest='';    my $FileCnt='';    while (($FileSrc, $FileDest) = each %g_FilesToCpAndConv)      {        $FileSrc = "$g_PathDocRoot\\$FileSrc";        $FileDest = "$g_PathMiscIn\\$FileDest";        print "Copying and converting EOL's from $FileSrc to $FileDest\n";        open (FH_SRC, $FileSrc);            while (<FH_SRC>)              {                chomp($_);                $_ = "$_\r\n";                                if ($FileCnt)                  {                    $FileCnt = $FileCnt . $_;                  }                else                  {                    $FileCnt = $_;                  }              }         close (FH_SRC);        open (FH_DEST, ">" . $FileDest);            print FH_DEST $FileCnt;        close (FH_DEST);        $FileCnt='';      }}#-------------------------------------------------------------------------# FUNCTION   MkDirP# DOES       Making a directory. Similar to unix's mkdir -psub MkDirP{    my $Dir=$_[0];    my @SubPaths;            if (! -e $Dir)      {        @SubPaths = split (/\\/, $Dir);        my $Dir2Make='';        for (@SubPaths)          {            if ($Dir2Make)              {                $Dir2Make = "$Dir2Make\\$_";              }            else              {                $Dir2Make = $_;              }            if (! -e $Dir2Make)              {                system ("mkdir $Dir2Make");              }          }      }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -