Skip to content

Commit

Permalink
Expose epre-built wheels, tarballs and ABOUT files as releases aboutc…
Browse files Browse the repository at this point in the history
…ode-org#295

This script copies all thirdparty files(required) and place it in repo as release assets.

Signed-off-by: Abhishek Kumar <abhishek.kasyap09@gmail.com>
  • Loading branch information
Abhishek-Dev09 committed Jul 7, 2020
1 parent 4d44bd3 commit 3aca419
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 23 deletions.
43 changes: 20 additions & 23 deletions etc/scripts/freeze_and_update_reqs.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,21 +36,13 @@
import subprocess


os.chdir(os.pardir) #go to etc
os.chdir(os.pardir) # go to scancode-toolkit
cwd = os.getcwd()
print("Current working directory:", cwd)
fp = open("requirements.txt", "wb")
fp.close()


def is_package_exist_with_hashes(package_name,hash_of_file):
""" Check if any line in the file contains package with same hashes """
# Open the file in read only mode
line_with_hash = package_name + " \\" + "\n" + " --hash=sha256:"+ hash_of_file
with open("requirements.txt", 'r') as read_obj:
line_with_hash = "{} \\\n --hash=sha256:{}".format(package_name,hash_of_file)
with open('requirements.txt') as file:
# Read all lines in the file one by one
for line in read_obj:
for line in file:
# For each line, check if line contains the package with same hashes
if line_with_hash in line:
return True
Expand All @@ -59,33 +51,33 @@ def is_package_exist_with_hashes(package_name,hash_of_file):
def is_package_exist_without_hashes(package_name):
""" Check if any line in the file contains package without same hash """
# Open the file in read only mode
line_with_hash = package_name + " \\" + "\n"
with open("requirements.txt", 'r') as read_obj:
line_with_hash = "{} \\\n".format(package_name)
with open('requirements.txt') as file:
# Read all lines in the file one by one
for line in read_obj:
for line in file:
# For each line, check if line contains the string
if line_with_hash in line:
return True
return False


def add_package(package_name,hash_of_file):
with open("requirements.txt", "a") as file_object:
with open('requirements.txt', 'a') as file:
# Append package with hashes at the end of file
line = package_name + " \\" + "\n" + " --hash=sha256:"+ hash_of_file + " \n"
file_object.write(line)
line = "{} \\\n --hash=sha256:{}\n".format(package_name,hash_of_file)
file.write(line)

def append_requirement_file(package_name,hash_of_file):
if is_package_exist_with_hashes(package_name,hash_of_file):
return
else:
inputfile = open("requirements.txt", 'r').readlines()
write_file = open("requirements.txt",'w')
inputfile = open('requirements.txt').readlines()
write_file = open('requirements.txt','w')
for line in inputfile:
write_file.write(line)
lion= package_name + " \\" + "\n"
if lion in line:
new_line = " --hash=sha256:"+ hash_of_file + " \\"
current_line = "{} \\\n".format(package_name)
if current_line in line:
new_line = " --hash=sha256:{} \\".format(hash_of_file)
write_file.write(new_line + "\n")
write_file.close()

Expand All @@ -108,10 +100,14 @@ def hash_of_file(path):
return hash.hexdigest()

def main():
os.chdir(os.pardir) #go to etc
os.chdir(os.pardir) # go to scancode-toolkit
cwd = os.getcwd()
print("Current working directory:", cwd)
fp= open('requirements.txt','w') #Create empty file because it must exits before opening the file in read mode.
for subdir, dirs, files in os.walk(cwd+"/thirdparty"):
for filename in files:
filepath = subdir + os.sep + filename
print(filename)
if filepath.endswith(".whl") and (fnmatch.fnmatchcase(filename, "*py3*") or fnmatch.fnmatchcase(filename, "*cp36*")):
name = filename.split('-')[0]
version = filename.split('-')[1]
Expand All @@ -133,6 +129,7 @@ def main():
if is_package_exist_without_hashes(package_name):
append_requirement_file(package_name,hs)
else: add_package(package_name,hs)
fp.close()

if __name__ == '__main__':
main()
56 changes: 56 additions & 0 deletions github_release.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2019 nexB Inc. and others. All rights reserved.
# http://nexb.com and https://github.com/nexB/scancode-toolkit/
# The ScanCode software is licensed under the Apache License version 2.0.
# Data generated with ScanCode require an acknowledgment.
# ScanCode is a trademark of nexB Inc.
#
# You may not use this software except in compliance with the License.
# You may obtain a copy of the License at: http://apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software distributed
# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
# CONDITIONS OF ANY KIND, either express or implied. See the License for the
# specific language governing permissions and limitations under the License.
#
# When you publish or redistribute any data created with ScanCode or any ScanCode
# derivative work, you must accompany this data with the following acknowledgment:
#
# Generated with ScanCode and provided on an "AS IS" BASIS, WITHOUT WARRANTIES
# OR CONDITIONS OF ANY KIND, either express or implied. No content created from
# ScanCode should be considered or used as legal advice. Consult an Attorney
# for any legal advice.
# ScanCode is a free software code scanning tool from nexB Inc. and others.
# Visit https://github.com/nexB/scancode-toolkit/ for support and download.


from __future__ import absolute_import
from __future__ import print_function

import fnmatch
import os
import subprocess


def main():
cwd = os.getcwd()
print("Current working directory:", cwd)
subprocess.run(["pip3","install","github-release-retry"])
token = input ("Enter GITHUB_TOKEN :")

os.environ ["GITHUB_TOKEN"] = token

tag = input ("Enter tag_name :")
repo = input ("Enter name of repository name :")
body = input ("Enter body string :")
user = input ("Enter Github user name :")
limit = input ("Enter retry limit :")
for subdir, dirs, files in os.walk(cwd+"/thirdparty"):
for filename in files:
if fnmatch.fnmatchcase(filename, "*py3*") or fnmatch.fnmatchcase(filename, "*cp36*") or (fnmatch.fnmatchcase(filename, "*tar.gz*") and not fnmatch.fnmatchcase(filename, "*py2*")):
filepath = subdir + os.sep + filename
subprocess.run(["python3","-m","github_release_retry.github_release_retry","--user",user,"--repo",repo,"--tag_name",tag,"--body_string",body,"--retry_limit",limit,filepath])

if __name__ == '__main__':
main()

0 comments on commit 3aca419

Please sign in to comment.