projects
/
crypto-install.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
f74ad75
)
Add gettext support.
author
Olof-Joachim Frahm
<olof@macrolet.net>
Sun, 18 Jan 2015 14:56:43 +0000
(14:56 +0000)
committer
Olof-Joachim Frahm
<olof@macrolet.net>
Sun, 18 Jan 2015 14:56:43 +0000
(14:56 +0000)
crypto-install
patch
|
blob
|
history
diff --git
a/crypto-install
b/crypto-install
index
eec72f7
..
c7afd94
100755
(executable)
--- a/
crypto-install
+++ b/
crypto-install
@@
-1,8
+1,8
@@
#!/usr/bin/env python
#!/usr/bin/env python
-# -*- mode: python; coding: utf-8-unix; -*-
+# -*- mode: python; coding: utf-8; -*-
-import argparse, errno, os, re, readline, subprocess, sys, tempfile, textwrap, threading
+import argparse, errno, gettext, os, re, readline, subprocess, sys, tempfile, textwrap, threading
if sys.version_info[0] == 2:
if sys.version_info[0] == 2:
@@
-12,8
+12,13
@@
if sys.version_info[0] == 2:
from ScrolledText import *
from Queue import *
from ScrolledText import *
from Queue import *
+
def input_string (prompt=""):
return raw_input (prompt)
def input_string (prompt=""):
return raw_input (prompt)
+
+
+ def gettext_install ():
+ gettext.install ("crypto-install", unicode = True)
elif sys.version_info[0] > 2:
from tkinter import *
from tkinter.messagebox import *
elif sys.version_info[0] > 2:
from tkinter import *
from tkinter.messagebox import *
@@
-21,8
+26,13
@@
elif sys.version_info[0] > 2:
from tkinter.scrolledtext import *
from queue import *
from tkinter.scrolledtext import *
from queue import *
+
def input_string (prompt=""):
return input (prompt)
def input_string (prompt=""):
return input (prompt)
+
+
+ def gettext_install ():
+ gettext.install ("crypto-install")
else:
raise Exception ("Unsupported Python version {}".format (sys.version_info))
else:
raise Exception ("Unsupported Python version {}".format (sys.version_info))
@@
-60,15
+70,15
@@
def parse_arguments ():
dest = "version",
action = "version",
version = "crypto-install.py version GIT-TAG (GIT-COMMIT/GIT-BRANCH)",
dest = "version",
action = "version",
version = "crypto-install.py version GIT-TAG (GIT-COMMIT/GIT-BRANCH)",
- help = "Display version.")
+ help = _ ("Display version."))
parser.add_argument (
"--no-gui",
dest = "gui",
action = "store_false",
parser.add_argument (
"--no-gui",
dest = "gui",
action = "store_false",
- help = "Disable GUI, use text mode.")
+ help = _ ("Disable GUI, use text interface."))
gnupg_group = parser.add_argument_group (
gnupg_group = parser.add_argument_group (
- "GnuPG",
- "Options related to the GnuPG setup.")
+ _ ("GnuPG"),
+ _ ("Options related to the GnuPG setup."))
gnupg_group.add_argument (
"--no-gpg",
dest = "gnupg",
gnupg_group.add_argument (
"--no-gpg",
dest = "gnupg",
@@
-79,21
+89,21
@@
def parse_arguments ():
dest = "gnupg_home",
default = os.getenv("GNUPGHOME") or "~/.gnupg",
metavar = "PATH",
dest = "gnupg_home",
default = os.getenv("GNUPGHOME") or "~/.gnupg",
metavar = "PATH",
- help = "Default directory for GnuPG files.")
+ help = _ ("Default directory for GnuPG files."))
openssh_group = parser.add_argument_group (
openssh_group = parser.add_argument_group (
- "OpenSSH",
- "Options related to the OpenSSH setup.")
+ _ ("OpenSSH"),
+ _ ("Options related to the OpenSSH setup."))
openssh_group.add_argument (
"--no-ssh",
dest = "openssh",
action = "store_false",
openssh_group.add_argument (
"--no-ssh",
dest = "openssh",
action = "store_false",
- help = "Disable OpenSSH setup.")
+ help = _ ("Disable OpenSSH setup."))
openssh_group.add_argument (
"--ssh-home",
dest = "openssh_home",
default = "~/.ssh",
metavar = "PATH",
openssh_group.add_argument (
"--ssh-home",
dest = "openssh_home",
default = "~/.ssh",
metavar = "PATH",
- help = "Default directory for OpenSSH files.")
+ help = _ ("Default directory for OpenSSH files."))
return parser.parse_args ()
return parser.parse_args ()
@@
-197,28
+207,28
@@
def gnupg_setup (arguments, name = None, email = None, comment = None):
gnupg_secring = os.path.join (gnupg_home, "secring.gpg")
if gnupg_exists (arguments):
gnupg_secring = os.path.join (gnupg_home, "secring.gpg")
if gnupg_exists (arguments):
- print ("GnuPG secret keyring already exists at '{}'."
+ print (_ ("GnuPG secret keyring already exists at '{}'.")
.format (gnupg_secring))
return
if not arguments.gui:
.format (gnupg_secring))
return
if not arguments.gui:
- print (filled ("""
+ print (filled (_ ("""
No default GnuPG key available. Please enter your information to
No default GnuPG key available. Please enter your information to
- create a new key."""))
+ create a new key.""")))
- name = read_input_string ("What is your name (e.g. 'John Doe')? ",
+ name = read_input_string (_ ("What is your name (e.g. 'John Doe')? "),
default_name ())
default_name ())
- email = read_input_string (dedented ("""
- What is your email address (e.g. 'test@example.com')? """),
+ email = read_input_string (dedented (_ ("""
+ What is your email address (e.g. 'test@example.com')? """)),
default_email ())
default_email ())
- comment = read_input_string (dedented ("""
- What is your comment phrase, if any (e.g. 'key for 2014')? """),
+ comment = read_input_string (dedented (_ ("""
+ What is your comment phrase, if any (e.g. 'key for 2014')? """)),
default_comment ())
if not os.path.exists (gnupg_home):
default_comment ())
if not os.path.exists (gnupg_home):
- print ("Creating GnuPG directory at '{}'.".format (gnupg_home))
+ print (_ ("Creating GnuPG directory at '{}'.").format (gnupg_home))
ensure_directories (gnupg_home, 0o700)
with tempfile.NamedTemporaryFile () as tmp:
ensure_directories (gnupg_home, 0o700)
with tempfile.NamedTemporaryFile () as tmp:
@@
-271,10
+281,10
@@
def openssh_setup (arguments, comment = None):
openssh_config = os.path.join (openssh_home, "config")
if not os.path.exists (openssh_config):
openssh_config = os.path.join (openssh_home, "config")
if not os.path.exists (openssh_config):
- print ("Creating OpenSSH directory at '{}'.".format (openssh_home))
+ print (_ ("Creating OpenSSH directory at '{}'.").format (openssh_home))
ensure_directories (openssh_home, 0o700)
ensure_directories (openssh_home, 0o700)
- print ("Creating OpenSSH configuration at '{}'."
+ print (_ ("Creating OpenSSH configuration at '{}'.")
.format (openssh_config))
with open (openssh_config, "w") as config:
config.write (ldedented ("""
.format (openssh_config))
with open (openssh_config, "w") as config:
config.write (ldedented ("""
@@
-285,21
+295,21
@@
def openssh_setup (arguments, comment = None):
openssh_key = os.path.join (openssh_home, "id_rsa")
if os.path.exists (openssh_key):
openssh_key = os.path.join (openssh_home, "id_rsa")
if os.path.exists (openssh_key):
- print ("OpenSSH key already exists at '{}'.".format (openssh_key))
+ print (_ ("OpenSSH key already exists at '{}'.").format (openssh_key))
return
openssh_key_dsa = os.path.join (openssh_home, "id_dsa")
if os.path.exists (openssh_key_dsa):
return
openssh_key_dsa = os.path.join (openssh_home, "id_dsa")
if os.path.exists (openssh_key_dsa):
- print ("OpenSSH key already exists at '{}'.".format (openssh_key_dsa))
+ print (_ ("OpenSSH key already exists at '{}'.").format (openssh_key_dsa))
return
return
- print (filled ("No OpenSSH key available. Generating new key."))
+ print (filled (_ ("No OpenSSH key available. Generating new key.")))
if not arguments.gui:
comment = "{}@{}".format (default_username (), default_hostname ())
if not arguments.gui:
comment = "{}@{}".format (default_username (), default_hostname ())
- comment = read_input_string (ldedented ("""
- What is your comment phrase (e.g. 'user@mycomputer')? """), comment)
+ comment = read_input_string (ldedented (_ ("""
+ What is your comment phrase (e.g. 'user@mycomputer')? """)), comment)
passphrase = input_passphrase (arguments)
passphrase = input_passphrase (arguments)
@@
-369,7
+379,7
@@
class CryptoInstallProgress (Toplevel):
self._quit["text"] = "Quit"
self._quit["command"] = self.quit
self.balloon.bind_widget (self._quit,
self._quit["text"] = "Quit"
self._quit["command"] = self.quit
self.balloon.bind_widget (self._quit,
- msg = "Quit the program immediately")
+ msg = _ ("Quit the program immediately"))
self._quit.pack ()
self._quit.pack ()
@@
-380,7
+390,7
@@
class CryptoInstall (Tk):
self.arguments = arguments
self.resizable (width = False, height = False)
self.arguments = arguments
self.resizable (width = False, height = False)
- self.title ("Crypto Install Wizard")
+ self.title (_ ("Crypto Install Wizard"))
self.create_widgets ()
self.create_widgets ()
@@
-391,7
+401,7
@@
class CryptoInstall (Tk):
self.info_frame.pack (fill = X)
self.user_label = Label (self.info_frame)
self.info_frame.pack (fill = X)
self.user_label = Label (self.info_frame)
- self.user_label["text"] = "Username"
+ self.user_label["text"] = _ ("Username")
self.user_label.grid ()
self.user_var = StringVar ()
self.user_label.grid ()
self.user_var = StringVar ()
@@
-400,13
+410,13
@@
class CryptoInstall (Tk):
self.user = Entry (self.info_frame, textvariable = self.user_var,
state = DISABLED)
self.user = Entry (self.info_frame, textvariable = self.user_var,
state = DISABLED)
- self.balloon.bind_widget (self.user, msg = dedented ("""
+ self.balloon.bind_widget (self.user, msg = dedented (_ ("""
Username on the local machine (e.g. 'user')
Username on the local machine (e.g. 'user')
- """))
+ """)))
self.user.grid (row = 0, column = 1)
self.host_label = Label (self.info_frame)
self.user.grid (row = 0, column = 1)
self.host_label = Label (self.info_frame)
- self.host_label["text"] = "Host Name"
+ self.host_label["text"] = _ ("Host Name")
self.host_label.grid ()
self.host_var = StringVar ()
self.host_label.grid ()
self.host_var = StringVar ()
@@
-415,13
+425,13
@@
class CryptoInstall (Tk):
self.host = Entry (self.info_frame, textvariable = self.host_var,
state = DISABLED)
self.host = Entry (self.info_frame, textvariable = self.host_var,
state = DISABLED)
- self.balloon.bind_widget (self.host, msg = dedented ("""
+ self.balloon.bind_widget (self.host, msg = dedented (_ ("""
Host name of the local machine (e.g. 'mycomputer')
Host name of the local machine (e.g. 'mycomputer')
- """))
+ """)))
self.host.grid (row = 1, column = 1)
self.name_label = Label (self.info_frame)
self.host.grid (row = 1, column = 1)
self.name_label = Label (self.info_frame)
- self.name_label["text"] = "Full Name"
+ self.name_label["text"] = _ ("Full Name")
self.name_label.grid ()
self.name_var = StringVar ()
self.name_label.grid ()
self.name_var = StringVar ()
@@
-429,13
+439,13
@@
class CryptoInstall (Tk):
self.name_var.trace ("w", self.update_widgets)
self.name = Entry (self.info_frame, textvariable = self.name_var)
self.name_var.trace ("w", self.update_widgets)
self.name = Entry (self.info_frame, textvariable = self.name_var)
- self.balloon.bind_widget (self.name, msg = dedented ("""
+ self.balloon.bind_widget (self.name, msg = dedented (_ ("""
Full name as it should appear in the key description (e.g. 'John Doe')
Full name as it should appear in the key description (e.g. 'John Doe')
- """))
+ """)))
self.name.grid (row = 2, column = 1)
self.email_label = Label (self.info_frame)
self.name.grid (row = 2, column = 1)
self.email_label = Label (self.info_frame)
- self.email_label["text"] = "Email address"
+ self.email_label["text"] = _ ("Email address")
self.email_label.grid ()
self.email_var = StringVar ()
self.email_label.grid ()
self.email_var = StringVar ()
@@
-443,13
+453,13
@@
class CryptoInstall (Tk):
self.email_var.trace ("w", self.update_widgets)
self.email = Entry (self.info_frame, textvariable = self.email_var)
self.email_var.trace ("w", self.update_widgets)
self.email = Entry (self.info_frame, textvariable = self.email_var)
- self.balloon.bind_widget (self.email, msg = dedented ("""
+ self.balloon.bind_widget (self.email, msg = dedented (_ ("""
Email address associated with the name (e.g. '<test@example.com>')
Email address associated with the name (e.g. '<test@example.com>')
- """))
+ """)))
self.email.grid (row = 3, column = 1)
self.comment_label = Label (self.info_frame)
self.email.grid (row = 3, column = 1)
self.comment_label = Label (self.info_frame)
- self.comment_label["text"] = "Comment phrase"
+ self.comment_label["text"] = _ ("Comment phrase")
self.comment_label.grid ()
self.comment_var = StringVar ()
self.comment_label.grid ()
self.comment_var = StringVar ()
@@
-457,16
+467,16
@@
class CryptoInstall (Tk):
self.comment_var.trace ("w", self.update_widgets)
self.comment = Entry (self.info_frame, textvariable = self.comment_var)
self.comment_var.trace ("w", self.update_widgets)
self.comment = Entry (self.info_frame, textvariable = self.comment_var)
- self.balloon.bind_widget (self.comment, msg = dedented ("""
+ self.balloon.bind_widget (self.comment, msg = dedented (_ ("""
Comment phrase for the GnuPG key, if any (e.g. 'key for 2014')
Comment phrase for the GnuPG key, if any (e.g. 'key for 2014')
- """))
+ """)))
self.comment.grid (row = 4, column = 1)
self.options_frame = Frame (self)
self.options_frame.pack (fill = X)
self.gnupg_label = Label (self.options_frame)
self.comment.grid (row = 4, column = 1)
self.options_frame = Frame (self)
self.options_frame.pack (fill = X)
self.gnupg_label = Label (self.options_frame)
- self.gnupg_label["text"] = "Generate GnuPG key"
+ self.gnupg_label["text"] = _ ("Generate GnuPG key")
self.gnupg_label.grid ()
self.gnupg_var = IntVar ()
self.gnupg_label.grid ()
self.gnupg_var = IntVar ()
@@
-478,7
+488,7
@@
class CryptoInstall (Tk):
self.gnupg.grid (row = 0, column = 1)
self.openssh_label = Label (self.options_frame)
self.gnupg.grid (row = 0, column = 1)
self.openssh_label = Label (self.options_frame)
- self.openssh_label["text"] = "Generate OpenSSH key"
+ self.openssh_label["text"] = _ ("Generate OpenSSH key")
self.openssh_label.grid ()
self.openssh_var = IntVar ()
self.openssh_label.grid ()
self.openssh_var = IntVar ()
@@
-493,18
+503,18
@@
class CryptoInstall (Tk):
self.button_frame.pack (fill = X)
self._generate = Button (self.button_frame)
self.button_frame.pack (fill = X)
self._generate = Button (self.button_frame)
- self._generate["text"] = "Generate Keys"
+ self._generate["text"] = _ ("Generate Keys")
self._generate["command"] = self.generate
self.balloon.bind_widget (
self._generate,
self._generate["command"] = self.generate
self.balloon.bind_widget (
self._generate,
- msg = "Generate the keys as configured above")
+ msg = _ ("Generate the keys as configured above"))
self._generate.pack (side = LEFT, fill = Y)
self._quit = Button (self.button_frame)
self._quit["text"] = "Quit"
self._quit["command"] = self.quit
self.balloon.bind_widget (self._quit,
self._generate.pack (side = LEFT, fill = Y)
self._quit = Button (self.button_frame)
self._quit["text"] = "Quit"
self._quit["command"] = self.quit
self.balloon.bind_widget (self._quit,
- msg = "Quit the program immediately")
+ msg = _ ("Quit the program immediately"))
self._quit.pack (side = LEFT)
self.update_widgets ()
self._quit.pack (side = LEFT)
self.update_widgets ()
@@
-566,16
+576,16
@@
class CryptoInstall (Tk):
openssh_key = "{}@{}".format (user, host)
openssh_key = "{}@{}".format (user, host)
- msg = dedented ("""
+ msg = dedented (_ ("""
Generate a GnuPG key for '{}' and configure a default setup for it
Generate a GnuPG key for '{}' and configure a default setup for it
- """).format (gnupg_key)
+ """)).format (gnupg_key)
self.balloon.bind_widget (self.gnupg, msg = msg)
self.balloon.bind_widget (self.gnupg_label, msg = msg)
self.balloon.bind_widget (self.gnupg, msg = msg)
self.balloon.bind_widget (self.gnupg_label, msg = msg)
- msg = dedented ("""
+ msg = dedented (_ ("""
Generate an OpenSSH key for '{}' and configure a default setup for it
Generate an OpenSSH key for '{}' and configure a default setup for it
- """).format (openssh_key)
+ """)).format (openssh_key)
self.balloon.bind_widget (self.openssh, msg = msg)
self.balloon.bind_widget (self.openssh_label, msg = msg)
self.balloon.bind_widget (self.openssh, msg = msg)
self.balloon.bind_widget (self.openssh_label, msg = msg)
@@
-622,6
+632,8
@@
class CryptoInstall (Tk):
def main ():
def main ():
+ gettext_install ()
+
arguments = parse_arguments ()
if arguments.gui:
arguments = parse_arguments ()
if arguments.gui: