Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Hiro
GetTor
Commits
41031394
Commit
41031394
authored
Feb 08, 2016
by
Israel Leiva
Browse files
Merge pull request #13 from aagbsn/deduplicate_utility_methods
Deduplicate utility methods
parents
09ea264f
d8a9d30d
Changes
4
Hide whitespace changes
Inline
Side-by-side
gettor/utils.py
View file @
41031394
...
...
@@ -47,3 +47,95 @@ def get_sha256(string):
"""
return
str
(
hashlib
.
sha256
(
string
).
hexdigest
())
def
get_bundle_info
(
file
,
osys
):
"""Get the os, arch and lc from a bundle string.
:param: file (string) the name of the file.
:param: osys (string) the OS.
:raise: ValueError if the bundle doesn't have a valid bundle format.
:return: (list) the os, arch and lc.
"""
if
(
osys
==
'windows'
):
m
=
re
.
search
(
'torbrowser-install-\d\.\d\.\d_(\w\w)(-\w\w)?\.exe'
,
file
)
if
m
:
lc
=
m
.
group
(
1
)
return
'windows'
,
'32/64'
,
lc
else
:
raise
ValueError
(
"Invalid bundle format %s"
%
file
)
elif
(
osys
==
'linux'
):
m
=
re
.
search
(
'tor-browser-linux(\d\d)-\d\.\d\.\d_(\w\w)(-\w\w)?\.tar\.xz'
,
file
)
if
m
:
arch
=
m
.
group
(
1
)
lc
=
m
.
group
(
2
)
return
'linux'
,
arch
,
lc
else
:
raise
ValueError
(
"Invalid bundle format %s"
%
file
)
elif
(
osys
==
'osx'
):
m
=
re
.
search
(
'TorBrowser-\d\.\d\.\d-osx(\d\d)_(\w\w)(-\w\w)?\.dmg'
,
file
)
if
m
:
os
=
'osx'
arch
=
m
.
group
(
1
)
lc
=
m
.
group
(
2
)
return
'osx'
,
arch
,
lc
else
:
raise
ValueError
(
"Invalid bundle format %s"
%
file
)
def
valid_format
(
file
,
osys
):
"""Check for valid bundle format
Check if the given file has a valid bundle format
(e.g. tor-browser-linux32-3.6.2_es-ES.tar.xz)
:param: file (string) the name of the file.
:param: osys (string) the OS.
:return: (boolean) true if the bundle format is valid, false otherwise.
"""
if
(
osys
==
'windows'
):
m
=
re
.
search
(
'torbrowser-install-\d\.\d\.\d_\w\w(-\w\w)?\.exe'
,
file
)
elif
(
osys
==
'linux'
):
m
=
re
.
search
(
'tor-browser-linux\d\d-\d\.\d\.\d_(\w\w)(-\w\w)?\.tar\.xz'
,
file
)
elif
(
osys
==
'osx'
):
m
=
re
.
search
(
'TorBrowser-\d\.\d\.\d-osx\d\d_(\w\w)(-\w\w)?\.dmg'
,
file
)
if
m
:
return
True
else
:
return
False
def
get_file_sha256
(
file
):
"""Get the sha256 of a file.
:param: file (string) the path of the file.
:return: (string) the sha256 hash.
"""
# as seen on the internetz
BLOCKSIZE
=
65536
hasher
=
hashlib
.
sha256
()
with
open
(
file
,
'rb'
)
as
afile
:
buf
=
afile
.
read
(
BLOCKSIZE
)
while
len
(
buf
)
>
0
:
hasher
.
update
(
buf
)
buf
=
afile
.
read
(
BLOCKSIZE
)
return
hasher
.
hexdigest
()
upload/bundles2drive.py
View file @
41031394
...
...
@@ -20,6 +20,7 @@ import logging
import
argparse
import
ConfigParser
import
gettor.core
from
gettor.utils
import
get_bundle_info
,
get_file_sha256
,
valid_format
# import google drive libs
import
httplib2
...
...
@@ -31,98 +32,6 @@ from oauth2client.client import OAuth2WebServerFlow
from
oauth2client.client
import
Credentials
def
valid_format
(
file
,
osys
):
"""Check for valid bundle format
Check if the given file has a valid bundle format
(e.g. tor-browser-linux32-3.6.2_es-ES.tar.xz)
:param: file (string) the name of the file.
:param: osys (string) the OS.
:return: (boolean) true if the bundle format is valid, false otherwise.
"""
if
(
osys
==
'windows'
):
m
=
re
.
search
(
'torbrowser-install-\d\.\d\.?\d?_\w\w(-\w\w)?\.exe'
,
file
)
elif
(
osys
==
'linux'
):
m
=
re
.
search
(
'tor-browser-linux\d\d-\d\.\d\.?\d?_(\w\w)(-\w\w)?\.tar\.xz'
,
file
)
elif
(
osys
==
'osx'
):
m
=
re
.
search
(
'TorBrowser-\d\.\d\.?\d?-osx\d\d_(\w\w)(-\w\w)?\.dmg'
,
file
)
if
m
:
return
True
else
:
return
False
def
get_bundle_info
(
file
,
osys
):
"""Get the os, arch and lc from a bundle string.
:param: file (string) the name of the file.
:param: osys (string) the OS.
:raise: ValueError if the bundle doesn't have a valid bundle format.
:return: (list) the os, arch and lc.
"""
if
(
osys
==
'windows'
):
m
=
re
.
search
(
'torbrowser-install-\d\.\d\.?\d?_(\w\w)(-\w\w)?\.exe'
,
file
)
if
m
:
lc
=
m
.
group
(
1
)
return
'windows'
,
'32/64'
,
lc
else
:
raise
ValueError
(
"Invalid bundle format %s"
%
file
)
elif
(
osys
==
'linux'
):
m
=
re
.
search
(
'tor-browser-linux(\d\d)-\d\.\d\.?\d?_(\w\w)(-\w\w)?\.tar\.xz'
,
file
)
if
m
:
arch
=
m
.
group
(
1
)
lc
=
m
.
group
(
2
)
return
'linux'
,
arch
,
lc
else
:
raise
ValueError
(
"Invalid bundle format %s"
%
file
)
elif
(
osys
==
'osx'
):
m
=
re
.
search
(
'TorBrowser-\d\.\d\.?\d?-osx(\d\d)_(\w\w)(-\w\w)?\.dmg'
,
file
)
if
m
:
os
=
'osx'
arch
=
m
.
group
(
1
)
lc
=
m
.
group
(
2
)
return
'osx'
,
arch
,
lc
else
:
raise
ValueError
(
"Invalid bundle format %s"
%
file
)
def
get_file_sha256
(
file
):
"""Get the sha256 of a file.
:param: file (string) the path of the file.
:return: (string) the sha256 hash.
"""
# as seen on the internetz
BLOCKSIZE
=
65536
hasher
=
hashlib
.
sha256
()
with
open
(
file
,
'rb'
)
as
afile
:
buf
=
afile
.
read
(
BLOCKSIZE
)
while
len
(
buf
)
>
0
:
hasher
.
update
(
buf
)
buf
=
afile
.
read
(
BLOCKSIZE
)
return
hasher
.
hexdigest
()
def
upload_files
(
client
,
basedir
):
"""Upload files to Google Drive.
...
...
@@ -141,25 +50,19 @@ def upload_files(client, basedir):
"""
files
=
[]
p
=
re
.
compile
(
'.*\.tar.xz$'
)
for
name
in
os
.
listdir
(
basedir
):
path
=
os
.
path
.
abspath
(
os
.
path
.
join
(
basedir
,
name
))
if
os
.
path
.
isfile
(
path
)
and
p
.
match
(
path
)
\
and
valid_format
(
name
,
'linux'
):
if
os
.
path
.
isfile
(
path
)
and
valid_format
(
name
,
'linux'
):
files
.
append
(
name
)
p
=
re
.
compile
(
'.*\.exe$'
)
for
name
in
os
.
listdir
(
basedir
):
path
=
os
.
path
.
abspath
(
os
.
path
.
join
(
basedir
,
name
))
if
os
.
path
.
isfile
(
path
)
and
p
.
match
(
path
)
\
and
valid_format
(
name
,
'windows'
):
if
os
.
path
.
isfile
(
path
)
and
valid_format
(
name
,
'windows'
):
files
.
append
(
name
)
p
=
re
.
compile
(
'.*\.dmg$'
)
for
name
in
os
.
listdir
(
basedir
):
path
=
os
.
path
.
abspath
(
os
.
path
.
join
(
basedir
,
name
))
if
os
.
path
.
isfile
(
path
)
and
p
.
match
(
path
)
\
and
valid_format
(
name
,
'osx'
):
if
os
.
path
.
isfile
(
path
)
and
valid_format
(
name
,
'osx'
):
files
.
append
(
name
)
# dictionary to store file names and IDs
...
...
upload/bundles2dropbox.py
View file @
41031394
...
...
@@ -18,97 +18,7 @@ import ConfigParser
import
dropbox
import
gettor.core
def
valid_format
(
file
,
osys
):
"""Check for valid bundle format
Check if the given file has a valid bundle format
(e.g. tor-browser-linux32-3.6.2_es-ES.tar.xz)
:param: file (string) the name of the file.
:param: osys (string) the OS.
:return: (boolean) true if the bundle format is valid, false otherwise.
"""
if
(
osys
==
'windows'
):
m
=
re
.
search
(
'torbrowser-install-\d\.\d\.\d_\w\w(-\w\w)?\.exe'
,
file
)
elif
(
osys
==
'linux'
):
m
=
re
.
search
(
'tor-browser-linux\d\d-\d\.\d\.\d_(\w\w)(-\w\w)?\.tar\.xz'
,
file
)
elif
(
osys
==
'osx'
):
m
=
re
.
search
(
'TorBrowser-\d\.\d\.\d-osx\d\d_(\w\w)(-\w\w)?\.dmg'
,
file
)
if
m
:
return
True
else
:
return
False
def
get_bundle_info
(
file
,
osys
):
"""Get the os, arch and lc from a bundle string.
:param: file (string) the name of the file.
:param: osys (string) the OS.
:raise: ValueError if the bundle doesn't have a valid bundle format.
:return: (list) the os, arch and lc.
"""
if
(
osys
==
'windows'
):
m
=
re
.
search
(
'torbrowser-install-\d\.\d\.\d_(\w\w)(-\w\w)?\.exe'
,
file
)
if
m
:
lc
=
m
.
group
(
1
)
return
'windows'
,
'32/64'
,
lc
else
:
raise
ValueError
(
"Invalid bundle format %s"
%
file
)
elif
(
osys
==
'linux'
):
m
=
re
.
search
(
'tor-browser-linux(\d\d)-\d\.\d\.\d_(\w\w)(-\w\w)?\.tar\.xz'
,
file
)
if
m
:
arch
=
m
.
group
(
1
)
lc
=
m
.
group
(
2
)
return
'linux'
,
arch
,
lc
else
:
raise
ValueError
(
"Invalid bundle format %s"
%
file
)
elif
(
osys
==
'osx'
):
m
=
re
.
search
(
'TorBrowser-\d\.\d\.\d-osx(\d\d)_(\w\w)(-\w\w)?\.dmg'
,
file
)
if
m
:
os
=
'osx'
arch
=
m
.
group
(
1
)
lc
=
m
.
group
(
2
)
return
'osx'
,
arch
,
lc
else
:
raise
ValueError
(
"Invalid bundle format %s"
%
file
)
def
get_file_sha256
(
file
):
"""Get the sha256 of a file.
:param: file (string) the path of the file.
:return: (string) the sha256 hash.
"""
# as seen on the internetz
BLOCKSIZE
=
65536
hasher
=
hashlib
.
sha256
()
with
open
(
file
,
'rb'
)
as
afile
:
buf
=
afile
.
read
(
BLOCKSIZE
)
while
len
(
buf
)
>
0
:
hasher
.
update
(
buf
)
buf
=
afile
.
read
(
BLOCKSIZE
)
return
hasher
.
hexdigest
()
from
gettor.utils
import
get_bundle_info
,
get_file_sha256
,
valid_format
def
upload_files
(
basedir
,
client
):
...
...
@@ -129,25 +39,19 @@ def upload_files(basedir, client):
"""
files
=
[]
p
=
re
.
compile
(
'.*\.tar.xz$'
)
for
name
in
os
.
listdir
(
basedir
):
path
=
os
.
path
.
abspath
(
os
.
path
.
join
(
basedir
,
name
))
if
os
.
path
.
isfile
(
path
)
and
p
.
match
(
path
)
\
and
valid_format
(
name
,
'linux'
):
if
os
.
path
.
isfile
(
path
)
and
valid_format
(
name
,
'linux'
):
files
.
append
(
name
)
p
=
re
.
compile
(
'.*\.exe$'
)
for
name
in
os
.
listdir
(
basedir
):
path
=
os
.
path
.
abspath
(
os
.
path
.
join
(
basedir
,
name
))
if
os
.
path
.
isfile
(
path
)
and
p
.
match
(
path
)
\
and
valid_format
(
name
,
'windows'
):
if
os
.
path
.
isfile
(
path
)
and
valid_format
(
name
,
'windows'
):
files
.
append
(
name
)
p
=
re
.
compile
(
'.*\.dmg$'
)
for
name
in
os
.
listdir
(
basedir
):
path
=
os
.
path
.
abspath
(
os
.
path
.
join
(
basedir
,
name
))
if
os
.
path
.
isfile
(
path
)
and
p
.
match
(
path
)
\
and
valid_format
(
name
,
'osx'
):
if
os
.
path
.
isfile
(
path
)
and
valid_format
(
name
,
'osx'
):
files
.
append
(
name
)
for
file
in
files
:
...
...
upload/bundles2github.py
View file @
41031394
...
...
@@ -23,63 +23,9 @@ import argparse
from
libsaas.services
import
github
import
gnupg
import
gettor.core
from
gettor.utils
import
get_bundle_info
,
get_file_sha256
def
get_file_sha256
(
file
):
"""Get the sha256 of a file.
:param: file (string) the path of the file.
:return: (string) the sha256 hash.
"""
# as seen on the internetz
BLOCKSIZE
=
65536
hasher
=
hashlib
.
sha256
()
with
open
(
file
,
'rb'
)
as
afile
:
buf
=
afile
.
read
(
BLOCKSIZE
)
while
len
(
buf
)
>
0
:
hasher
.
update
(
buf
)
buf
=
afile
.
read
(
BLOCKSIZE
)
return
hasher
.
hexdigest
()
def
get_bundle_info
(
file
,
osys
):
"""Get the os, arch and lc from a bundle string.
:param: file (string) the name of the file.
:param: osys (string) the OS.
:raise: ValueError if the bundle doesn't have a valid bundle format.
:return: (list) the os, arch and lc.
"""
if
(
osys
==
'windows'
):
m
=
re
.
search
(
'torbrowser-install-\d\.\d\.\d_(\w\w)(-\w\w)?\.exe'
,
file
)
if
m
:
lc
=
m
.
group
(
1
)
return
'windows'
,
'32/64'
,
lc
elif
(
osys
==
'linux'
):
m
=
re
.
search
(
'tor-browser-linux(\d\d)-\d\.\d\.\d_(\w\w)(-\w\w)?\.tar\.xz'
,
file
)
if
m
:
arch
=
m
.
group
(
1
)
lc
=
m
.
group
(
2
)
return
'linux'
,
arch
,
lc
elif
(
osys
==
'osx'
):
m
=
re
.
search
(
'TorBrowser-\d\.\d\.\d-osx(\d\d)_(\w\w)(-\w\w)?\.dmg'
,
file
)
if
m
:
os
=
'osx'
arch
=
m
.
group
(
1
)
lc
=
m
.
group
(
2
)
return
'osx'
,
arch
,
lc
if
__name__
==
'__main__'
:
parser
=
argparse
.
ArgumentParser
(
description
=
'Utility to upload Tor Browser to Github.'
...
...
@@ -107,7 +53,7 @@ if __name__ == '__main__':
gh_token
=
''
# path to the fingerprint that signed the packages
tb_key
=
os
.
path
.
abspath
(
'
tbb-key-
torbrowser
team
.asc'
)
tb_key
=
os
.
path
.
abspath
(
'torbrowser
-key
.asc'
)
# path to the latest version of Tor Browser
tb_path
=
os
.
path
.
abspath
(
'upload/latest'
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment