aboutsummaryrefslogtreecommitdiffstats
path: root/lang/python/docs/dita/howto/part06/group-lines.dita
blob: 1dbfc97a31ff4c2e9c3db064f8a0b17088aca4a9 (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
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dita PUBLIC "-//OASIS//DTD DITA Composite//EN" "ditabase.dtd">
<dita xml:lang="en-GB">
    <topic id="topic_gbm_bxz_5db">
        <title>Group Lines</title>
        <body>
            <p>There is not yet an easy way to access groups configured in the
          <filepath>gpg.conf</filepath> file from within GPGME. As a consequence these central
        groupings of keys cannot be shared amongst multiple programs, such as MUAs readily.</p>
      <p>The following code, however, provides a work-around for obtaining this information in
        Python.</p>
      <p>
        <codeblock id="groups-1" outputclass="language-python">import subprocess

lines = subprocess.getoutput("gpgconf --list-options gpg").splitlines()

for i in range(len(lines)):
    if lines[i].startswith("group") is True:
        line = lines[i]
    else:
        pass

groups = line.split(":")[-1].replace('"', '').split(',')

group_lines = []
group_lists = []

for i in range(len(groups)):
    group_lines.append(groups[i].split("="))
    group_lists.append(groups[i].split("="))

for i in range(len(group_lists)):
    group_lists[i][1] = group_lists[i][1].split()
</codeblock>
      </p>
      <p>The result of that code is that <codeph>group_lines</codeph> is a list of lists where
          <codeph>group_lines[i][0]</codeph> is the name of the group and
          <codeph>group_lines[i][1]</codeph> is the key IDs of the group as a string.</p>
      <p>The <codeph>group_lists</codeph> result is very similar in that it is a list of lists. The
        first part, <codeph>group_lists[i][0]</codeph> matches <codeph>group_lines[i][0]</codeph> as
        the name of the group, but <codeph>group_lists[i][1]</codeph> is the key IDs of the group as
        a string.</p>
      <p>To use this code as a module use:</p>
      <p>
        <codeblock id="groups-2" outputclass="language-python">from groups import group_lists</codeblock>
      </p>
          <p>A demonstration of using the <filepath>groups.py</filepath> module is also available in
            the form of the executable <cmdname>mutt-groups.py</cmdname> script. This second script
        reads all the group entries in a user's <filepath>gpg.conf</filepath> file and converts them
        into crypt-hooks suitable for use with the Mutt and Neomutt mail clients.</p>
        </body>
    </topic>
</dita>