35 lines
985 B
Python
35 lines
985 B
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, path="./"):
|
|
try:
|
|
with open(path + url.split("/")[-1], "wb") as npm_package_file:
|
|
npm_package_file.write(requests.get(url))
|
|
except:
|
|
raise "Path not exist!\nPlease create the path: " + path
|
|
|
|
|
|
def download_all_package():
|
|
packages_urls = get_all_urls_packages()
|
|
for package_url in packages_urls:
|
|
download_npm_package(package_url, "npm-packages/")
|
|
|
|
|
|
def main():
|
|
npm_create_package_lock_file(argv[1])
|
|
urls_packages = get_all_urls_packages()
|
|
|
|
if __name__ == "__main__":
|
|
main() |