Files
npm-install/npm_install.py
2022-11-12 19:36:07 +02:00

54 lines
1.4 KiB
Python

from os import system, mkdir
from re import findall
from sys import argv
import requests
def npm_create_package_lock_file(package):
system("npm i --package-lock-only " + package)
def get_all_urls_packages():
with open("package-lock.json", "rt") as package_lock_file:
content = package_lock_file.read()
return list(dict.fromkeys(findall("https://.+.tgz", content)))
def download_npm_package(url:str, dir="npm-packages"):
try:
mkdir(dir)
except:
pass
with open(dir + "/" + url.split("/")[-1], "wb") as npm_package_file:
npm_package_file.write(requests.get(url))
def download_all_package():
packages_urls = get_all_urls_packages()
for package_url in packages_urls:
download_npm_package(package_url, "npm-packages")
def upload_package(nexus_host, repository, package_file):
if nexus_host[-1] != "/":
nexus_host += "/"
res = requests.post(
nexus_host + "service/rest/v1/components?repository=" + repository,
headers={
"accept": "application/json",
"Content-Type": "multipart/form-data"
},
files={
"npm.asset": open(package_file, "rb")
})
return res
def publish_all_packages():
pass
def main():
npm_create_package_lock_file(argv[1])
urls_packages = get_all_urls_packages()
if __name__ == "__main__":
main()