Files
npm-install/npm-install.sh
2022-02-10 16:10:08 +02:00

66 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
npm_cretae_package_lock_file() {
if [[ $# > 0 ]]; then
local package=$1
fi
npm i --package-lock-only $package
}
download_package() {
local url_package=$1
wget $url_package
}
npm_publish_package() {
local package_filename=$1
npm publish $package_filename
}
get_all_packages_urls() {
echo $(grep -Eo "https://.+(.tgz)" package-lock.json | sort | uniq)
}
download_all_package() {
local urls_packages=$@
for url_package in ${urls_packages[@]};
do
download_package $url_package
done
}
publish_all_packages() {
local packages_filenames=($(ls *.tgz))
for package_name in ${packages_filenames[@]};
do
npm_publish_package $package_name
done
}
remove_all_local_packages_and_json() {
rm *.tgz
rm *.json
}
echo_npm_registry() {
npm get registry
}
if [[ -n $(ls *.tgz) ]]; then
echo "NPM Registry is $(echo_npm_registry)"
echo "Are you sure you want publish to this registry?[y/n]:"
read -n 1 ans
if [[ ${ans^^} == "Y" ]]; then
publish_all_packages
remove_all_local_packages_and_json
fi
else
if npm_cretae_package_lock_file $1; then
urls_packages=($(get_all_packages_urls))
download_all_package ${urls_packages[@]}
else
remove_all_local_packages_and_json
fi
fi