python: howto and examples
[gpgme.git] / lang / python / examples / howto / groups.py
1 # -*- coding: utf-8 -*-
2
3 from __future__ import absolute_import, division, unicode_literals
4
5 # Copyright (C) 2018 Ben McGinnes <ben@gnupg.org>
6 #
7 # This program is free software; you can redistribute it and/or modify it under
8 # the terms of the GNU General Public License as published by the Free Software
9 # Foundation; either version 2 of the License, or (at your option) any later
10 # version.
11 #
12 # This program is free software; you can redistribute it and/or modify it under
13 # the terms of the GNU Lesser General Public License as published by the Free
14 # Software Foundation; either version 2.1 of the License, or (at your option)
15 # any later version.
16 #
17 # This program is distributed in the hope that it will be useful, but WITHOUT
18 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
19 # FOR A PARTICULAR PURPOSE.  See the GNU General Public License and the GNU
20 # Lesser General Public License for more details.
21 #
22 # You should have received a copy of the GNU General Public License and the GNU
23 # Lesser General Public along with this program; if not, see
24 # <https://www.gnu.org/licenses/>.
25
26 import subprocess
27 import sys
28
29 """
30 Intended for use with other scripts.
31
32 Usage: from groups import group_lists
33 """
34
35 if sys.platform == "win32":
36     gpgconfcmd = "gpgconf.exe --list-options gpg"
37 else:
38     gpgconfcmd = "gpgconf --list-options gpg"
39
40 process = subprocess.Popen(gpgconfcmd.split(), stdout=subprocess.PIPE)
41 procom = process.communicate()
42
43 if sys.version_info[0] == 2:
44     lines = procom[0].splitlines()
45 else:
46     lines = procom[0].decode().splitlines()
47
48 for line in lines:
49     if line.startswith("group") is True:
50         break
51
52 groups = line.split(":")[-1].replace('"', '').split(',')
53
54 group_lines = []
55 group_lists = []
56
57 for i in range(len(groups)):
58     group_lines.append(groups[i].split("="))
59     group_lists.append(groups[i].split("="))
60
61 for i in range(len(group_lists)):
62     group_lists[i][1] = group_lists[i][1].split()