]>
code.delx.au - gnu-emacs-elpa/blob - packages/notes-mode/mkconfig
5 # $Id: mkconfig,v 1.10 2003/05/23 16:26:30 johnh Exp $
7 # Copyright (C) 1996,2012 Free Software Foundation, Inc.
8 # Comments to <johnh@isi.edu>.
10 # This file is under the Gnu Public License, version 2.
11 # For details see the COPYING which accompanies this distribution.
16 usage: $0 [elisp|perl]
24 &usage
if ($#ARGV != 0 || $ARGV[0] eq '-?');
28 &usage
if ($type ne 'elisp' && $type ne 'perl');
31 my($home_dir) = ((getpwuid($<))[7]);
34 'dir' => ['path', '~/NOTES'],
35 'int_form' => ['form', '%Y%m'],
36 'file_form' => ['form', '%y%m%d'],
38 $defaults{'bin_dir'} = ['path', "$ENV{'NOTES_BIN_DIR'}"]
39 if defined($ENV{'NOTES_BIN_DIR'});
41 my($key, $value, %notes);
42 while (($key, $value) = each %defaults) {
43 $notes{$key} = $value->[1];
49 my($notesrc) = "$home_dir/.notesrc";
50 $notesrc = $ENV{'NOTESRC'} if (defined($ENV{'NOTESRC'}));
52 if (open (CONFIG
, "<$notesrc")) {
57 ($key, $value) = /^\s*([^:]+):\s*(.*)$/;
58 $notes{$key} = $value;
59 die("$0: file_form cannot be changed from %y%m%d.\n")
60 if ($key eq 'file_form' && $value ne '%y%m%d');
66 # generate extra forms
68 my(%old_notes) = %notes;
69 while (($key, $value) = each %old_notes) {
73 if ($defaults{$key}->[0] eq 'form') {
74 my($oldkey, $oldvalue) = ($key, $value);
75 $key =~ s/_form/_glob/;
76 $value =~ s/%Y/[12][90][0-9][0-9]/g;
77 $value =~ s/%(y|m|d)/[0-9][0-9]/g;
78 $notes{$key} = $value;
80 my($key, $value) = ($oldkey, $oldvalue);
81 $key =~ s/_form/_regexp/;
82 $value =~ s/%Y/[12][90]([0-9][0-9])/g;
83 $value =~ s/%(y|m|d)/([0-9][0-9])/g;
84 $notes{$key} = $value;
87 $notes{'url_prefix'} = "file:///$notes{'dir'}/";
92 #if ($type eq 'perl') {
95 my($comment) = ($type eq 'perl' ?
'# ' : '; ');
96 print "$comment automatically generated by $0\n";
97 while (($key, $value) = each %notes) {
101 if (defined($defaults{$key}) && $defaults{$key}->[0] eq 'path') {
102 # not absolute or ~, then it's in notes_dir.
103 $value = "$notes{'dir'}/$value" if ($value !~ m@
^[~/]@
);
105 $value =~ s@
^~/@$home_dir/@
;
108 if ($type eq 'perl') {
109 print "\$notes{'$key'} = '$value';\n";
112 $value =~ s/([()])/\\\\$1/g if ($key =~ /-regexp$/);
113 print "(defvar notes-$key \"$value\")\n";