Browse Source

Linux: Also search lib/ sub directory for libargon so file

master
Herbert Poul 5 years ago
parent
commit
af0358bfd8
  1. 4
      CHANGELOG.md
  2. 23
      lib/src/argon2_ffi_impl.dart
  3. 7
      pubspec.lock
  4. 3
      pubspec.yaml

4
CHANGELOG.md

@ -1,3 +1,7 @@
## 0.1.4+4
* Linux: Also search lib/ sub directory for libargon so file.
## 0.1.4+3
* Better error message for mac os when unable to load dylib.

23
lib/src/argon2_ffi_impl.dart

@ -7,6 +7,7 @@ import 'package:argon2_ffi_base/src/argon2_ffi_base.dart';
import 'package:argon2_ffi_base/src/utils.dart';
import 'package:ffi/ffi.dart';
import 'package:logging/logging.dart';
import 'package:path/path.dart' as path;
final _logger = Logger('argon2_ffi_base');
@ -90,7 +91,27 @@ class Argon2FfiFlutter extends Argon2Base {
.asFunction();
}
static ResolveLibrary defaultResolveLibrary = (name) => name;
static ResolveLibrary defaultResolveLibrary = (name) {
if (Platform.isLinux) {
// on linux the library is put into a `lib` sub directory.
final appDir = File(Platform.executable).parent;
final appDirPath = appDir.path;
final f = File(path.join(appDirPath, name));
_logger.finest('checking $appDirPath for $name');
if (!f.existsSync()) {
_logger.finest('$name not found in current path, looking into $name');
final f = File(path.join(appDirPath, 'lib', name));
if (f.existsSync()) {
final ret = f.absolute.path;
_logger.finer('Loading from $ret');
return ret;
} else {
_logger.severe('Unable to find $name in $appDirPath or ${f.path}');
}
}
}
return name;
};
final ResolveLibrary resolveLibrary;

7
pubspec.lock

@ -22,6 +22,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.2"
path:
dependency: "direct main"
description:
name: path
url: "https://pub.dartlang.org"
source: hosted
version: "1.7.0"
pedantic:
dependency: "direct dev"
description:

3
pubspec.yaml

@ -1,6 +1,6 @@
name: argon2_ffi_base
description: Base package defining the interface for an Argon2 implementation.
version: 0.1.4+3
version: 0.1.4+4
homepage: https://github.com/authpass/argon2_ffi_base
environment:
@ -9,6 +9,7 @@ environment:
dependencies:
ffi: ^0.1.3
logging: ^0.11.4
path: ">=1.7.0 <2.0.0"
dev_dependencies:
pedantic: ^1.9.2

Loading…
Cancel
Save