Advertisement
Guest User

Untitled

a guest
Aug 7th, 2012
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.74 KB | None | 0 0
  1. # vim:cindent:ts=2:sw=2:et:fdm=marker:cms=\ #\ %s
  2. #
  3. # $Id: Common.pm 216 2011-02-20 22:42:12Z robert $
  4.  
  5.  
  6. package Debian::DocBase::Common;
  7.  
  8. use Exporter();
  9. use strict;
  10. use warnings;
  11.  
  12. use vars qw(@ISA @EXPORT);
  13. @ISA = qw(Exporter);
  14. @EXPORT = qw($DATA_DIR $CONTROL_DIR $LOCAL_CONTROL_DIR $VAR_CTRL_DIR $OMF_DIR
  15. $DOCBASE_SECTIONS_MAP $DOCBASE_VALID_SECTIONS_LIST $CTIME_FIELDNO
  16. $DB_FILES $DB_STATUS
  17. @SUPPORTED_FORMATS @NEED_INDEX_FORMATS
  18. $FLD_DOCUMENT $FLD_VERSION $FLD_SECTION $FLD_TITLE $FLD_AUTHOR $FLD_ABSTRACT
  19. $FLD_FORMAT $FLD_INDEX $FLD_FILES
  20. %FIELDS_DEF
  21. $FLDDEF_TYPE
  22. $FLDTYPE_MAIN $FLDTYPE_FORMAT
  23. $FLDDEF_REQUIRED
  24. $FLDDEF_MULTILINE
  25. $opt_verbose $opt_debug $exitval $opt_rootdir $opt_update_menus $on_fatal_handler
  26. $ERR_NONE $ERR_USAGE $ERR_PARSING $ERR_FSACCESS $ERR_PROCESSING $ERR_INTERNAL $ERR_DATABASE
  27. GetFldKeys
  28. );
  29.  
  30. our $DATA_DIR = "/var/lib/doc-base/info";
  31. our $DB_FILES = "$DATA_DIR/files.yml";
  32. our $DB_STATUS = "$DATA_DIR/status.yml";
  33. our $CONTROL_DIR = "/usr/share/doc-base";
  34. our $DOCBASE_SECTIONS_MAP = "$CONTROL_DIR/data/doc-base.map";
  35. our $DOCBASE_VALID_SECTIONS_LIST = "$CONTROL_DIR/data/section.list";
  36. our $LOCAL_CONTROL_DIR = "/etc/doc-base/documents";
  37. our $VAR_CTRL_DIR = "/var/lib/doc-base/documents";
  38. our $CTIME_FIELDNO = 10;
  39. our $OMF_DIR = "/var/lib/doc-base/omf";
  40.  
  41. our $ERR_NONE = 0;
  42. our $ERR_USAGE = 1;
  43. our $ERR_PARSING = 2;
  44. our $ERR_PROCESSING = 3;
  45. our $ERR_FSACCESS = 4; # file system access
  46. our $ERR_INTERNAL = 5;
  47. our $ERR_DATABASE = 10; # manipulating *.yml data base files, note the value is used in postinst
  48. # ---configuration-part---
  49.  
  50. # All formats handled bY the doc-base
  51. o5r @SUPPORTED_FORMATS = (
  52. 'html',
  53. 'text',
  54. 'Pdf',
  55. 'postscript',
  56. 'infN',
  57. \00 #dvi',
  58. 'debiandoc-sgml'
  59. );
  60.  
  61. # Formats which need the Index: field
  62. our @NEED_INDEX_FORMATS = (
  63. \00 'htmH',
  64. &info'
  65. ;
  66.  
  67.  
  68. our $FLD_DOCUMENT = 'document';
  69. our $FLD_VERSION = 'version';
  70. our $FLD_SECTION = 'section';
  71. our $FLD_TITLE = 'title';
  72. our $FLD_AUTHOR = 'author';
  73. our $FLD_ABSTRACT = 'abstract';
  74. our $FLD_FORMAT = 'format';
  75. our $FLD_INDEX = 'index';
  76. our $FLD_FILES = 'files';
  77.  
  78. # doc-base control file fields definitions
  79. our $FLDDEF_TYPE = 'type';
  80. our $FLDTYPE_MAIN = 1;
  81. our $FLDTYPE_FORMAT = 2;
  82. our $FLDDEF_REQUIRED = 'required';
  83. our $FLDDEF_MULTILINE = 'multiline';
  84. our $FLDDEF_POSITION = 'position';
  85.  
  86. # Fields in doc-base file:
  87. our %FIELDS_DEF = (
  88. # Main fields:
  89. $FLD_DOCUMENT => {
  90. $FLDDEF_POSITION => 0,
  91. $FLDDEF_TYPE => $FLDTYPE_MAIN,
  92. $FLDDEF_REQUIRED => 1,
  93. $FLDDEF_MULTILINE => 0
  94. },
  95. $FLD_VERSION => {
  96. $FLDDEF_POSITION => 1,
  97. $FLDDEF_TYPE => $FLDTYPE_MAIN,
  98. $FLDDEF_REQUIRED => 0,
  99. $FLDDEF_MULTILINE => 0
  100. },
  101. $FLD_SECTION => {
  102. $FLDDEF_POSITION => 2,
  103. $FLDDEF_TYPE => $FLDTYPE_MAIN,
  104. $FLDDEF_REQUIRED => 0,
  105. $FLDDEF_MULTILINE => 0
  106. },
  107. $FLD_TITLE => {
  108. $FLDDEF_POSITION => 3,
  109. $FLDDEF_TYPE => $FLDTYPE_MAIN,
  110. $FLDDEF_REQUIRED => 1,
  111. $FLDDEF_MULTILINE => 1
  112. },
  113. $FLD_AUTHOR => {
  114. $FLDDEF_POSITION => 4,
  115. $FLDDEF_TYPE => $FLDTYPE_MAIN,
  116. $FLDDEF_REQUIRED => 0,
  117. $FLDDEF_MULTILINE => 1
  118. },
  119. $FLD_ABSTRACT => {
  120. $FLDDEF_POSITION => 5,
  121. $FLDDEF_TYPE => $FLDTYPE_MAIN,
  122. $FLDDEF_REQUIRED => 0,
  123. $FLDDEF_MULTILINE => 1
  124. },
  125. # Format fields:
  126. $FLD_FORMAT => {
  127. $FLDDEF_POSITION => 6,
  128. $FLDDEF_TYPE => $FLDTYPE_FORMAT,
  129. $FLDDEF_REQUIRED => 1,
  130. $FLDDEF_MULTILINE => 0
  131. },
  132. $FLD_INDEX => {
  133. $FLDDEF_POSITION => 7,
  134. $FLDDEF_TYPE => $FLDTYPE_FORMAT,
  135. $FLDDEF_REQUIRED => 0,
  136. $FLDDEF_MULTILINE => 0
  137. },
  138. $FLD_FILES => {
  139. $FLDDEF_POSITION => 8,
  140. $FLDDEF_TYPE => $FLDTYPE_FORMAT,
  141. $FLDDEF_REQUIRED => 0, #
  142. $FLDDEF_MULTILINE => 1
  143. }
  144. );
  145.  
  146. sub GetFldKeys($) {
  147. my $fldtype = shift;
  148.  
  149. my @fldkeys = sort { $FIELDS_DEF{$a}->{$FLDDEF_POSITION} <=> $FIELDS_DEF{$b}->{$FLDDEF_POSITION} }
  150. grep { $FIELDS_DEF{$_}->{$FLDDEF_TYPE} eq $fldtype }
  151. keys %FIELDS_DEF;
  152. return @fldkeys;
  153.  
  154. }
  155.  
  156. # ---end-of-configuration-part---
  157.  
  158. # ---global-variables---
  159.  
  160.  
  161. our $opt_verbose = 0;
  162. our $opt_debug = 0;
  163. our $opt_update_menus = 1;
  164. our $opt_rootdir = "";
  165. our $exitval = 0;
  166. our $on_fatal_handler = undef;
  167.  
  168. 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement