Add support for updating

parent 7ac1a639
......@@ -21,7 +21,7 @@ fi
epm assure jq || exit
package="$1"
library="$1"
version="$2"
main="$3"
main_minified="$4"
......@@ -33,5 +33,5 @@ if ! npm view "$1" > /dev/null 2>&1; then
fi
add_package "$package" "$version" "$main" "$main_minified"
registry_add_library_version "$package" "$version" "$main" "$main_minified"
add_package "$library" "$version" "$main" "$main_minified"
registry_add_library_version "$library" "$version" "$main" "$main_minified"
......@@ -4,27 +4,30 @@ fatal () {
}
add_package () {
local package="$1"
local library="$1"
local version="$2"
local main="$3"
local minified="$4"
rm -rf "packages/$package/$version"
create_package_version "$package" "$version"
echo "Created packages/$package/$version/package.json"
install_or_update_package "$package" "$version"
create_dist_link "$package" "$version" "$main" "$minified"
echo "Installed $package@$version"
if [ -e "packages/$library/$version" ]; then
rm -rf "packages/$library/$version"
echo "Removed old version (packages/$library/$version)"
fi
create_package_version "$library" "$version"
echo "Created packages/$library/$version/package.json"
install_or_update_package "$library" "$version"
create_dist_link "$library" "$version" "$main" "$minified"
echo "Installed $library@$version"
}
create_dist_link () {
local package="$1"
local library="$1"
local version="$2"
local main="$3"
local minified="$4"
public_base="public/$package/$version"
package_base="packages/$package/$version/node_modules/$package"
public_base="public/$library/$version"
library_base="packages/$library/$version/node_modules/$library"
mkdir -p "$public_base"
#if [ -z "$3" ]; then
......@@ -33,9 +36,9 @@ create_dist_link () {
local main_file="$3"
local main_file_minified="$4"
#fi
link_and_print "$package_base/$main_file_minified" "$public_base/$package.min.js"
link_and_print "$public_base/$package.min.js" "$public_base/$package.js"
link_and_print "$package_base/$main_file" "$public_base/$package.development.js"
link_and_print "$library_base/$main_file_minified" "$public_base/$library.min.js"
link_and_print "$public_base/$library.min.js" "$public_base/$library.js"
link_and_print "$library_base/$main_file" "$public_base/$library.development.js"
}
create_package_version () {
......@@ -73,7 +76,7 @@ link_and_print () {
if ! [ -e "$1" ]; then
fatal "File not found: $1"
fi
ln "$1" "$2"
ln -f "$1" "$2"
echo "Created hardlink: $2 -> $1"
}
......@@ -81,3 +84,47 @@ registry_add_library_version () {
new_registry=$(cat registry.json | jq --arg lib "$1" --arg version "$2" --arg main "$3" --arg minified "$4" ".installedLibraries[\"$1\"][\"$2\"] = {"main": \$main, "minified": \$minified}") || fatal "jq error"
echo "$new_registry" > registry.json
}
registry_get_libraries () {
echo $(cat registry.json | jq -r ".installedLibraries | keys[]")
}
registry_get_library_versions () {
echo $(cat registry.json | jq -r ".installedLibraries[\"$1\"] | keys[]")
}
registry_get_package_main () {
echo $(cat registry.json | jq -r ".installedLibraries[\"$1\"][\"$2\"].main")
}
registry_get_package_main_minified () {
echo $(cat registry.json | jq -r ".installedLibraries[\"$1\"][\"$2\"].minified")
}
registry_package_exists () {
local result=$(cat registry.json | jq ".installedLibraries[\"$1\"][\"$2\"]")
[ "$result" != "null" ]
}
update_all_packages () {
local libraries=$(registry_get_libraries)
echo "----------"
for library in $libraries; do
local versions=$(registry_get_library_versions "$library")
for version in $versions; do
echo "Updating $library@$version:"
update_package "$library" "$version"
echo "----------"
done
done
}
update_package () {
local library="$1"
local version="$2"
local main=$(registry_get_package_main "$library" "$version")
local main_minified=$(registry_get_package_main_minified "$library" "$version")
add_package "$library" "$version" "$main" "$main_minified"
}
#!/bin/bash
source functions.sh
if [ "$1" == '-h' ] || [ "$1" == '--help' ] || [ $# -eq 1 ] ; then
echo 'Usage: update.sh [<package> <version>]'
exit 0
fi
epm assure jq || exit
library="$1"
version="$2"
if [ -z "$library" ] || [ -z "$version" ]; then
echo 'Updating all packages from registry.json...'
update_all_packages
else
if registry_package_exists "$library" "$version"; then
update_package "$library" "$version"
else
echo "Package not installed: $library@$version"
exit 1
fi
fi
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment