Gracefully handle binary files for file/<file>.gph - stahg-gopher - Static Mercurial page generator for gopher
(HTM) hg clone https://bitbucket.org/iamleot/stahg-gopher
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) changeset 12d7dd66c5a3153b8ed11b3af5f7df8f0ce140eb
(DIR) parent 7b3ce6eee6ce5e9373af06204a9df09636454e47
(HTM) Author: Leonardo Taccari <iamleot@gmail.com>
Date: Mon, 13 May 2019 15:35:55
Gracefully handle binary files for file/<file>.gph
(Strictly speaking that's not binary file but everything that could
not be decode()-ed.)
Diffstat:
TODO | 3 ---
stahg-gopher.py | 12 ++++++++----
2 files changed, 8 insertions(+), 7 deletions(-)
---
diff -r 7b3ce6eee6ce -r 12d7dd66c5a3 TODO
--- a/TODO Mon May 13 15:20:53 2019 +0200
+++ b/TODO Mon May 13 15:35:55 2019 +0200
@@ -4,9 +4,6 @@
Missing features/bugs
---------------------
- - Gracefully handle binary files in file/<file>.gph
- In stagit-gopher instead of the contents of the file a
- `Binary file.' is present instead.
- Implement refs(), to list all branches and tags
- Write a stahg-gopher-index
- Write documentation and man page(s)
diff -r 7b3ce6eee6ce -r 12d7dd66c5a3 stahg-gopher.py
--- a/stahg-gopher.py Mon May 13 15:20:53 2019 +0200
+++ b/stahg-gopher.py Mon May 13 15:35:55 2019 +0200
@@ -286,10 +286,14 @@
print('---', file=f)
files = [self.client.root() + os.sep.encode() + file]
- for num, line in enumerate(self.client.cat(files).decode().splitlines(), start=1):
- print('{num:6d} {line}'.format(
- num=num,
- line=gph_escape_text(line)), file=f)
+ try:
+ content = self.client.cat(files).decode()
+ for num, line in enumerate(content.splitlines(), start=1):
+ print('{num:6d} {line}'.format(
+ num=num,
+ line=gph_escape_text(line)), file=f)
+ except:
+ print('Binary file.', file=f)
if __name__ == '__main__':