diff --git a/README.md b/README.md index 1f61351..7389829 100644 --- a/README.md +++ b/README.md @@ -103,6 +103,10 @@ option `-setup data_dir Dir`. "$schema": "http://json-schema.org/draft-04/schema#", "additionalProperties": false, "properties": { + "cache_dir": { + "description": "Location of cache, default is 'setup:data_dir()'", + "type": "string" + }, "extra_pubkeys": { "default": [], "description": "Additional worker pubkeys, sharing rewards", diff --git a/ebin/gmhive_client.app b/ebin/gmhive_client.app index 50b9d5b..7fb10f6 100644 --- a/ebin/gmhive_client.app +++ b/ebin/gmhive_client.app @@ -1,6 +1,6 @@ {application,gmhive_client, [{description,"Gajumaru Hive Client"}, - {vsn,"0.8.2"}, + {vsn,"0.8.3"}, {registered,[]}, {applications,[kernel,stdlib,sasl,gproc,inets,ssl,enoise, gmconfig,gmhive_protocol,gmhive_worker]}, diff --git a/priv/gmhc_schema.json b/priv/gmhc_schema.json index 6c0371a..99fbab4 100644 --- a/priv/gmhc_schema.json +++ b/priv/gmhc_schema.json @@ -2,6 +2,10 @@ "$schema": "http://json-schema.org/draft-04/schema#", "additionalProperties": false, "properties": { + "cache_dir": { + "description": "Location of cache, default is 'setup:data_dir()'", + "type": "string" + }, "extra_pubkeys": { "default": [], "description": "Additional worker pubkeys, sharing rewards", diff --git a/src/gmhc_app.erl b/src/gmhc_app.erl index f5e98a1..51fe8f9 100644 --- a/src/gmhc_app.erl +++ b/src/gmhc_app.erl @@ -1,6 +1,6 @@ %% -*- mode: erlang; erlang-indent-level: 4; indent-tabs-mode: nil -*- -module(gmhc_app). --vsn("0.6.1"). +-vsn("0.8.3"). -behaviour(application). diff --git a/src/gmhc_config.erl b/src/gmhc_config.erl index 19b0623..f05c1bd 100644 --- a/src/gmhc_config.erl +++ b/src/gmhc_config.erl @@ -1,5 +1,5 @@ -module(gmhc_config). --vsn("0.6.1"). +-vsn("0.8.3"). -export([ load_config/0 , get_config/1 diff --git a/src/gmhc_config_schema.erl b/src/gmhc_config_schema.erl index 7276efa..c8e2d4e 100644 --- a/src/gmhc_config_schema.erl +++ b/src/gmhc_config_schema.erl @@ -1,5 +1,5 @@ -module(gmhc_config_schema). --vsn("0.6.1"). +-vsn("0.8.3"). -export([ schema/0 , to_json/0 @@ -51,6 +51,7 @@ schema() -> , pool => pool() , pool_admin => pool_admin() , workers => workers() + , cache_dir => str(#{description => <<"Location of cache, default is 'setup:data_dir()'">>}) , report => str(#{ enum => [<<"debug">>, <<"progress">>, <<"silent">>] , default => <<"silent">> , description => <<"Progress reporting">> }) diff --git a/src/gmhc_connector.erl b/src/gmhc_connector.erl index 7c28d9b..294d6c9 100644 --- a/src/gmhc_connector.erl +++ b/src/gmhc_connector.erl @@ -1,5 +1,5 @@ -module(gmhc_connector). --vsn("0.6.1"). +-vsn("0.8.3"). -behaviour(gen_server). diff --git a/src/gmhc_connectors_sup.erl b/src/gmhc_connectors_sup.erl index b94b8a9..3996d71 100644 --- a/src/gmhc_connectors_sup.erl +++ b/src/gmhc_connectors_sup.erl @@ -1,5 +1,5 @@ -module(gmhc_connectors_sup). --vsn("0.6.1"). +-vsn("0.8.3"). -behavior(supervisor). -export([ start_link/0 diff --git a/src/gmhc_counters.erl b/src/gmhc_counters.erl index d7210ba..270e6e8 100644 --- a/src/gmhc_counters.erl +++ b/src/gmhc_counters.erl @@ -1,5 +1,5 @@ -module(gmhc_counters). --vsn("0.6.1"). +-vsn("0.8.3"). -export([ initialize/0 ]). diff --git a/src/gmhc_eureka.erl b/src/gmhc_eureka.erl index dafdf17..9059ed7 100644 --- a/src/gmhc_eureka.erl +++ b/src/gmhc_eureka.erl @@ -1,9 +1,12 @@ -module(gmhc_eureka). --vsn("0.6.1"). +-vsn("0.8.3"). -export([get_pool_address/0]). -export([cache_good_address/1, - invalidate_cache/0]). + invalidate_cache/0, + cached_address/0, + cache_filename/0, + cache_dir/0]). -include_lib("kernel/include/logger.hrl"). -include("gmhc_events.hrl"). @@ -99,10 +102,27 @@ cache_filename() -> cache_filename(cache_info()). cache_filename(#{network := Network, pubkey := Pubkey}) -> - Path = filename:join(setup:data_dir(), Network), + Path = filename:join(cache_dir(), Network), <<"ak_", PKShort:8/binary, _/binary>> = Pubkey, filename:join(Path, "gmhc_eureka." ++ binary_to_list(PKShort) ++ ".cache"). +cache_dir() -> + case gmconfig:find_config([<<"cache_dir">>]) of + {ok, D} -> + D; + undefined -> + case setup_zomp:is_zomp_context() of + true -> + cache_dir_zomp(); + false -> + filename:join(setup:data_dir(), "gmhive.cache") + end + end. + +cache_dir_zomp() -> + #{package_id := {Realm, App, _}} = zx_daemon:meta(), + filename:join(zx_lib:ppath(var, {Realm, App}), "gmhive.cache"). + get_pool_address_() -> case gmconfig:find_config([<<"pool_admin">>, <<"url">>], [user_config]) of {ok, URL0} -> diff --git a/src/gmhc_events.erl b/src/gmhc_events.erl index ffbd6da..55cc220 100644 --- a/src/gmhc_events.erl +++ b/src/gmhc_events.erl @@ -1,5 +1,5 @@ -module(gmhc_events). --vsn("0.6.1"). +-vsn("0.8.3"). -export([subscribe/1, ensure_subscribed/1, diff --git a/src/gmhc_handler.erl b/src/gmhc_handler.erl index de44e68..f32bcd9 100644 --- a/src/gmhc_handler.erl +++ b/src/gmhc_handler.erl @@ -1,5 +1,5 @@ -module(gmhc_handler). --vsn("0.6.1"). +-vsn("0.8.3"). -behavior(gen_server). -export([ start_link/0 diff --git a/src/gmhc_lib.erl b/src/gmhc_lib.erl index 48ecf92..131dde1 100644 --- a/src/gmhc_lib.erl +++ b/src/gmhc_lib.erl @@ -1,4 +1,5 @@ -module(gmhc_lib). +-vsn("0.8.3"). -export([ rand/1 ]). diff --git a/src/gmhc_server.erl b/src/gmhc_server.erl index a9efc33..ae51c57 100644 --- a/src/gmhc_server.erl +++ b/src/gmhc_server.erl @@ -1,5 +1,5 @@ -module(gmhc_server). --vsn("0.6.1"). +-vsn("0.8.3"). -behaviour(gen_server). diff --git a/src/gmhc_sup.erl b/src/gmhc_sup.erl index 7504a16..a2723bf 100644 --- a/src/gmhc_sup.erl +++ b/src/gmhc_sup.erl @@ -1,6 +1,6 @@ %% -*- mode: erlang; erlang-indent-level: 4; indent-tabs-mode: nil -*- -module(gmhc_sup). --vsn("0.6.1"). +-vsn("0.8.3"). -behaviour(supervisor). diff --git a/src/gmhc_workers.erl b/src/gmhc_workers.erl index 3b026ee..b89df0a 100644 --- a/src/gmhc_workers.erl +++ b/src/gmhc_workers.erl @@ -8,7 +8,7 @@ %%%------------------------------------------------------------------- -module(gmhc_workers). --vsn("0.6.1"). +-vsn("0.8.3"). -export([ get_worker_configs/0 diff --git a/src/gmhive_client.erl b/src/gmhive_client.erl index 7779d26..0696120 100644 --- a/src/gmhive_client.erl +++ b/src/gmhive_client.erl @@ -1,5 +1,5 @@ -module(gmhive_client). --vsn("0.6.1"). +-vsn("0.8.3"). -export([ connect/1 , disconnect/1 diff --git a/zomp.meta b/zomp.meta index 0641e5f..2f3f445 100644 --- a/zomp.meta +++ b/zomp.meta @@ -2,9 +2,9 @@ {type,app}. {modules,[]}. {prefix,"gmhc"}. -{author,"Ulf Wiger, QPQ AG"}. {desc,"Gajumaru Hive Client"}. -{package_id,{"uwiger","gmhive_client",{0,8,2}}}. +{author,"Ulf Wiger, QPQ AG"}. +{package_id,{"uwiger","gmhive_client",{0,8,3}}}. {deps,[{"uwiger","gmhive_protocol",{0,2,0}}, {"uwiger","gmhive_worker",{0,5,1}}, {"uwiger","gmcuckoo",{1,2,4}},