aboutsummaryrefslogtreecommitdiff
path: root/GUIDELINES
blob: a41e21f246e82a829d71c4a3bb74d96cd14b4f65 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
Firma development policy
------------------------

Abstract: this policy helps control all development
          steps to keep a clean and junk-free code.

In the future this procedure will be automatic.

1 - After any addition to firma, check the following:
----------------------------------------------------

  - Put all new variables in the variables list bellow
  - If a new variable has to be declared via a config-file,
    remember to set it to be created in the NewList function
  - Put all new functions in the functions list bellow
  - Put all new global variables in the GLOBAL_VARS variable
  - Put all new global arrays in the GLOBAL_ARRAYS variable
  - If you are using an unix command, check if its already
    listed in the commands list. If it's not, please add it

2 - Variables usage
-------------------

  - Global vars: uppercase, with spaces replaced by underscores
  - Local vars: lowercase, with spaces replaced by underscores and
                declared using "local"
  - Attention to variables initialization, unset all vars after use

3 - Script listing
------------------

- used functions:

  DeclareGpgVars 
  Usage 
  Version 
  CheckFirmaConfigFile 
  CheckListConfigFile 
  GetMessage 
  GetMessageHeaders 
  GetGpgMessage 
  GetGpgDecryptStderr 
  GetSubscribersList 
  SendListMessage 
  SendWarningMessage 
  SendBounceMessage 
  ProcessMessage 
  NewList 
  ListAdministration 
  ChooseUid 

- used variables:

  - declared via a config file

    GPG_BINARY
    MAIL_AGENT
    MAIL_AGENT_ARGS
    LISTS_DIR 
    USE_GPG_HIDDEN_RECIPIENT_OPTION
    SEND_MESSAGES_USING_BCC

    LIST_ADDRESS
    LIST_ADMIN
    LIST_HOMEDIR
    PASSPHRASE

  - declared directly via firma

    FIRMA_CONFIG_FILE
    VERSION

    GPG_FLAGS
    GPG
    GPG_LIST_KEYS
    GPG_DECRYPT
    GPG_ENCRYPT
    FROM
    DATE
    SUBJECT
    SENDER_ADDRESS
    GPG_DECRYPT_STDERR
    SUBSCRIBERS_LIST
    MESSAGE_BODY
    DESCRIPTION

    GLOBAL_ARRAYS
    ARRAY
    GLOBAL_VARS
    VAR
    LIST_NAME
    LIST_PATH
    LIST_CONFIG_FILE
    STDIN

  - local vars

    administrator
    stdin
    element
    first_blank_line
    i
    j
    subscriber
    email_address
    keyid
    uid_count
    chosen_uid_number

  - arrays

    ORIG_MESSAGE
    ORIG_MESSAGE_HEADERS
    ORIG_GPG_MESSAGE

- unix commands:

   bash itself

   $GPG_BINARY
   $MAIL_AGENT

   echo
   cat
   grep
   wc
   tr
   seq
   cut
   sed
   mkdir
   touch
   chmod
   chown
   basename
   expect
   fold
   uniq
   mimencode