@@ -44,6 +44,8 @@ private const val BINARY_TOR_LNX = "tor"
4444private const val PATH_LNX = " linux/"
4545private const val PATH_LNX64 = " ${PATH_LNX } x64/"
4646private const val PATH_LNX32 = " ${PATH_LNX } x86/"
47+ private const val PATH_LNXARMHF = " ${PATH_LNX } armhf/"
48+ private const val PATH_LNXARM64 = " ${PATH_LNX } arm64/"
4749private const val PATH_MACOS = " osx/"
4850private const val PATH_MACOS64 = " ${PATH_MACOS } x64/"
4951private const val PATH_WIN = " windows/"
@@ -53,7 +55,7 @@ private const val PATH_NATIVE = "native/"
5355private const val OS_UNSUPPORTED = " We don't support Tor on this OS"
5456
5557class NativeTor @JvmOverloads @Throws(TorCtlException ::class ) constructor(workingDirectory : File , bridgeLines : Collection <String >? = null , torrcOverrides : Torrc ? = null , automaticShutdown : Boolean = true ) : Tor() {
56-
58+
5759 private val context : NativeContext = NativeContext (workingDirectory, torrcOverrides)
5860
5961 private val bridgeConfig: List <String > = bridgeLines?.filter { it.length > 10 } ? : emptyList()
@@ -151,6 +153,8 @@ class NativeContext(workingDirectory: File, overrides: Torrc?) : TorContext(work
151153 OsType .MACOS -> PATH_NATIVE + PATH_MACOS64
152154 OsType .LNX32 -> PATH_NATIVE + PATH_LNX32
153155 OsType .LNX64 -> PATH_NATIVE + PATH_LNX64
156+ OsType .LNXARMHF -> PATH_NATIVE + PATH_LNXARMHF
157+ OsType .LNXARM64 -> PATH_NATIVE + PATH_LNXARM64
154158 else -> throw RuntimeException (OS_UNSUPPORTED )
155159 }
156160 }
@@ -159,15 +163,15 @@ class NativeContext(workingDirectory: File, overrides: Torrc?) : TorContext(work
159163 when (OsType .current) {
160164 OsType .WIN -> PATH_NATIVE + PATH_WIN
161165 OsType .MACOS -> PATH_NATIVE + PATH_MACOS
162- OsType .LNX32 , OsType .LNX64 -> PATH_NATIVE + PATH_LNX
166+ OsType .LNX32 , OsType .LNX64 , OsType . LNXARMHF , OsType . LNXARM64 -> PATH_NATIVE + PATH_LNX
163167 else -> throw RuntimeException (OS_UNSUPPORTED )
164168 }
165169 }
166170 override val pathToRC: String = " $rcPath$FILE_TORRC_NATIVE "
167171
168172 override val torExecutableFileName: String by lazy {
169173 when (OsType .current) {
170- OsType .LNX32 , OsType .LNX64 -> BINARY_TOR_LNX
174+ OsType .LNX32 , OsType .LNX64 , OsType . LNXARMHF , OsType . LNXARM64 -> BINARY_TOR_LNX
171175 OsType .WIN -> BINARY_TOR_WIN
172176 OsType .MACOS -> BINARY_TOR_MACOS
173177 else -> throw RuntimeException (OS_UNSUPPORTED )
@@ -182,7 +186,7 @@ class NativeContext(workingDirectory: File, overrides: Torrc?) : TorContext(work
182186 override fun installFiles () {
183187 super .installFiles()
184188 when (OsType .current) {
185- OsType .WIN , OsType .LNX32 , OsType .LNX64 , OsType .MACOS -> extractContentFromArchive(workingDirectory,
189+ OsType .WIN , OsType .LNX32 , OsType .LNX64 , OsType .LNXARMHF , OsType . LNXARM64 , OsType . MACOS -> extractContentFromArchive(workingDirectory,
186190 getByName(
187191 pathToTorExecutable + FILE_ARCHIVE ))
188192 else -> throw RuntimeException (OS_UNSUPPORTED )
0 commit comments