aboutsummaryrefslogtreecommitdiff
path: root/cli/onionshare_cli/common.py
diff options
context:
space:
mode:
authorMicah Lee <micah@micahflee.com>2021-10-11 20:45:28 -0700
committerMicah Lee <micah@micahflee.com>2021-10-11 20:45:28 -0700
commit229da0aaab94ee84e8a0daf6d23251279a639f32 (patch)
treeb25866e4dcd6b3f55f47752e04cd3fc4c70517d4 /cli/onionshare_cli/common.py
parent343a8cccc13319a8014ad7c12e49a5db52014b54 (diff)
downloadonionshare-229da0aaab94ee84e8a0daf6d23251279a639f32.tar.gz
onionshare-229da0aaab94ee84e8a0daf6d23251279a639f32.zip
Make get_tor_paths work properly now that in linux the tor binaries are bundled too
Diffstat (limited to 'cli/onionshare_cli/common.py')
-rw-r--r--cli/onionshare_cli/common.py53
1 files changed, 39 insertions, 14 deletions
diff --git a/cli/onionshare_cli/common.py b/cli/onionshare_cli/common.py
index dd92eb0b..78da8882 100644
--- a/cli/onionshare_cli/common.py
+++ b/cli/onionshare_cli/common.py
@@ -309,38 +309,63 @@ class Common:
def get_tor_paths(self):
if self.platform == "Linux":
- tor_path = shutil.which("tor")
- if not tor_path:
- raise CannotFindTor()
- obfs4proxy_file_path = shutil.which("obfs4proxy")
- prefix = os.path.dirname(os.path.dirname(tor_path))
- tor_geo_ip_file_path = os.path.join(prefix, "share/tor/geoip")
- tor_geo_ipv6_file_path = os.path.join(prefix, "share/tor/geoip6")
+ # Look in resources first
+ base_path = self.get_resource_path("tor")
+ if os.path.exists(base_path):
+ tor_path = os.path.join(base_path, "tor")
+ tor_geo_ip_file_path = os.path.join(base_path, "geoip")
+ tor_geo_ipv6_file_path = os.path.join(base_path, "geoip6")
+ obfs4proxy_file_path = os.path.join(base_path, "obfs4proxy")
+ snowflake_file_path = os.path.join(base_path, "snowflake-client")
+ else:
+ # Fallback to looking in the path
+ tor_path = shutil.which("tor")
+ if not tor_path:
+ raise CannotFindTor()
+ obfs4proxy_file_path = shutil.which("obfs4proxy")
+ snowflake_file_path = shutil.which("snowflake-client")
+ prefix = os.path.dirname(os.path.dirname(tor_path))
+ tor_geo_ip_file_path = os.path.join(prefix, "share/tor/geoip")
+ tor_geo_ipv6_file_path = os.path.join(prefix, "share/tor/geoip6")
elif self.platform == "Windows":
base_path = self.get_resource_path("tor")
tor_path = os.path.join(base_path, "Tor", "tor.exe")
obfs4proxy_file_path = os.path.join(base_path, "Tor", "obfs4proxy.exe")
+ snowflake_file_path = os.path.join(base_path, "Tor", "snowflake-client.exe")
tor_geo_ip_file_path = os.path.join(base_path, "Data", "Tor", "geoip")
tor_geo_ipv6_file_path = os.path.join(base_path, "Data", "Tor", "geoip6")
elif self.platform == "Darwin":
- tor_path = shutil.which("tor")
- if not tor_path:
- raise CannotFindTor()
- obfs4proxy_file_path = shutil.which("obfs4proxy")
- prefix = os.path.dirname(os.path.dirname(tor_path))
- tor_geo_ip_file_path = os.path.join(prefix, "share/tor/geoip")
- tor_geo_ipv6_file_path = os.path.join(prefix, "share/tor/geoip6")
+ # Look in resources first
+ base_path = self.get_resource_path("tor")
+ if os.path.exists(base_path):
+ tor_path = os.path.join(base_path, "tor")
+ tor_geo_ip_file_path = os.path.join(base_path, "geoip")
+ tor_geo_ipv6_file_path = os.path.join(base_path, "geoip6")
+ obfs4proxy_file_path = os.path.join(base_path, "obfs4proxy")
+ snowflake_file_path = os.path.join(base_path, "snowflake-client")
+ else:
+ # Fallback to looking in the path
+ tor_path = shutil.which("tor")
+ if not tor_path:
+ raise CannotFindTor()
+ obfs4proxy_file_path = shutil.which("obfs4proxy")
+ snowflake_file_path = shutil.which("snowflake-client")
+ prefix = os.path.dirname(os.path.dirname(tor_path))
+ tor_geo_ip_file_path = os.path.join(prefix, "share/tor/geoip")
+ tor_geo_ipv6_file_path = os.path.join(prefix, "share/tor/geoip6")
elif self.platform == "BSD":
tor_path = "/usr/local/bin/tor"
tor_geo_ip_file_path = "/usr/local/share/tor/geoip"
tor_geo_ipv6_file_path = "/usr/local/share/tor/geoip6"
obfs4proxy_file_path = "/usr/local/bin/obfs4proxy"
+ snowflake_file_path = "/usr/local/bin/snowflake-client"
return (
tor_path,
tor_geo_ip_file_path,
tor_geo_ipv6_file_path,
obfs4proxy_file_path,
+ snowflake_file_path,
)
def build_data_dir(self):