pass-import: patch to use python3-magic
Noone else ships python3-file-magic, I don't want to maintain it.
This commit is contained in:
parent
c42ffd9ee3
commit
e64c353b65
3 changed files with 94 additions and 3 deletions
|
@ -0,0 +1,55 @@
|
||||||
|
From 5a1bff33c692be2fc1add61e642111976858c672 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
|
||||||
|
<congdanhqx@gmail.com>
|
||||||
|
Date: Mon, 27 Jul 2020 17:31:06 +0700
|
||||||
|
Subject: [PATCH] tools/magic: refactor get_magics function
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
In a later patch, we will add support for python-magic.
|
||||||
|
Refactore get_magics function to prepare for that change.
|
||||||
|
|
||||||
|
Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
|
||||||
|
---
|
||||||
|
pass_import/tools.py | 14 ++++++++++----
|
||||||
|
1 file changed, 10 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git pass_import/tools.py pass_import/tools.py
|
||||||
|
index 257f01a..815ff8b 100644
|
||||||
|
--- pass_import/tools.py
|
||||||
|
+++ pass_import/tools.py
|
||||||
|
@@ -39,20 +39,26 @@ def get_magics(path):
|
||||||
|
with open(path, 'rb') as file:
|
||||||
|
header = file.read(2048)
|
||||||
|
|
||||||
|
- res = magic.detect_from_content(header)
|
||||||
|
+ if hasattr(magic, 'detect_from_content'):
|
||||||
|
+ res = magic.detect_from_content(header)
|
||||||
|
+ mime_type = res.mime_type
|
||||||
|
+ magic_name = res.name
|
||||||
|
+ else:
|
||||||
|
+ return None, None
|
||||||
|
+
|
||||||
|
mime_to_format = {
|
||||||
|
'application/pgp': 'gpg',
|
||||||
|
'application/x-sqlite3': 'sqlite3'
|
||||||
|
}
|
||||||
|
name_to_format = {'KDBX': 'kdbx', 'openssl': 'openssl', 'PGP': 'gpg'}
|
||||||
|
|
||||||
|
- frmt = mime_to_format.get(res.mime_type, None)
|
||||||
|
+ frmt = mime_to_format.get(mime_type, None)
|
||||||
|
for name in name_to_format:
|
||||||
|
- if name in res.name:
|
||||||
|
+ if name in magic_name:
|
||||||
|
frmt = name_to_format[name]
|
||||||
|
|
||||||
|
encoding = None # res.encoding
|
||||||
|
- if 'UTF-8 Unicode (with BOM)' in res.name:
|
||||||
|
+ if 'UTF-8 Unicode (with BOM)' in magic_name:
|
||||||
|
encoding = 'utf-8-sig'
|
||||||
|
|
||||||
|
return frmt, encoding
|
||||||
|
--
|
||||||
|
2.28.0.163.g6104cc2f0b
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
From 8cbcd2bdd885c1028065f06b7ab02673c544720b Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
|
||||||
|
<congdanhqx@gmail.com>
|
||||||
|
Date: Mon, 27 Jul 2020 18:00:15 +0700
|
||||||
|
Subject: [PATCH] tools/magic: support python-magic
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
|
||||||
|
---
|
||||||
|
pass_import/tools.py | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git pass_import/tools.py pass_import/tools.py
|
||||||
|
index 815ff8b..c1a3f01 100644
|
||||||
|
--- pass_import/tools.py
|
||||||
|
+++ pass_import/tools.py
|
||||||
|
@@ -43,6 +43,9 @@ def get_magics(path):
|
||||||
|
res = magic.detect_from_content(header)
|
||||||
|
mime_type = res.mime_type
|
||||||
|
magic_name = res.name
|
||||||
|
+ elif hasattr(magic, 'from_buffer'):
|
||||||
|
+ mime_type = magic.from_buffer(header, mime=True)
|
||||||
|
+ magic_name = magic.from_buffer(header)
|
||||||
|
else:
|
||||||
|
return None, None
|
||||||
|
|
||||||
|
--
|
||||||
|
2.28.0.163.g6104cc2f0b
|
||||||
|
|
|
@ -1,16 +1,21 @@
|
||||||
# Template file for 'pass-import'
|
# Template file for 'pass-import'
|
||||||
pkgname=pass-import
|
pkgname=pass-import
|
||||||
version=3.0
|
version=3.0
|
||||||
revision=2
|
revision=3
|
||||||
archs=noarch
|
archs=noarch
|
||||||
build_style=gnu-makefile
|
build_style=gnu-makefile
|
||||||
make_install_args=BASHCOMPDIR=/usr/share/bash-completion/completions
|
|
||||||
hostmakedepends="python3-setuptools python3-yaml"
|
hostmakedepends="python3-setuptools python3-yaml"
|
||||||
depends="pass>=1.7.0 python3-defusedxml python3-file-magic
|
depends="pass>=1.7.0 python3-defusedxml python3-magic
|
||||||
python3-cryptography python3-SecretStorage python3-pykeepass"
|
python3-cryptography python3-SecretStorage python3-pykeepass"
|
||||||
|
checkdepends="pass python3-defusedxml python3-magic python3-cryptography
|
||||||
|
python3-SecretStorage python3-pykeepass"
|
||||||
short_desc="Pass extension for importing data from most existing password managers"
|
short_desc="Pass extension for importing data from most existing password managers"
|
||||||
maintainer="Alan Brown <adbrown@rocketmail.com>"
|
maintainer="Alan Brown <adbrown@rocketmail.com>"
|
||||||
license="GPL-3.0-or-later"
|
license="GPL-3.0-or-later"
|
||||||
homepage="https://github.com/roddhjav/pass-import"
|
homepage="https://github.com/roddhjav/pass-import"
|
||||||
distfiles="https://github.com/roddhjav/pass-import/releases/download/v${version}/pass-import-${version}.tar.gz"
|
distfiles="https://github.com/roddhjav/pass-import/releases/download/v${version}/pass-import-${version}.tar.gz"
|
||||||
checksum=14f6708df990b88c54b07e722686ed9e1a639300b33d2ff83dd87845e44779fc
|
checksum=14f6708df990b88c54b07e722686ed9e1a639300b33d2ff83dd87845e44779fc
|
||||||
|
|
||||||
|
do_check() {
|
||||||
|
python3 setup.py test
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue