Add support for updating

parent 7ac1a639
...@@ -21,7 +21,7 @@ fi ...@@ -21,7 +21,7 @@ fi
epm assure jq || exit epm assure jq || exit
package="$1" library="$1"
version="$2" version="$2"
main="$3" main="$3"
main_minified="$4" main_minified="$4"
...@@ -33,5 +33,5 @@ if ! npm view "$1" > /dev/null 2>&1; then ...@@ -33,5 +33,5 @@ if ! npm view "$1" > /dev/null 2>&1; then
fi fi
add_package "$package" "$version" "$main" "$main_minified" add_package "$library" "$version" "$main" "$main_minified"
registry_add_library_version "$package" "$version" "$main" "$main_minified" registry_add_library_version "$library" "$version" "$main" "$main_minified"
...@@ -4,27 +4,30 @@ fatal () { ...@@ -4,27 +4,30 @@ fatal () {
} }
add_package () { add_package () {
local package="$1" local library="$1"
local version="$2" local version="$2"
local main="$3" local main="$3"
local minified="$4" local minified="$4"
rm -rf "packages/$package/$version" if [ -e "packages/$library/$version" ]; then
create_package_version "$package" "$version" rm -rf "packages/$library/$version"
echo "Created packages/$package/$version/package.json" echo "Removed old version (packages/$library/$version)"
install_or_update_package "$package" "$version" fi
create_dist_link "$package" "$version" "$main" "$minified" create_package_version "$library" "$version"
echo "Installed $package@$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 () { create_dist_link () {
local package="$1" local library="$1"
local version="$2" local version="$2"
local main="$3" local main="$3"
local minified="$4" local minified="$4"
public_base="public/$package/$version" public_base="public/$library/$version"
package_base="packages/$package/$version/node_modules/$package" library_base="packages/$library/$version/node_modules/$library"
mkdir -p "$public_base" mkdir -p "$public_base"
#if [ -z "$3" ]; then #if [ -z "$3" ]; then
...@@ -33,9 +36,9 @@ create_dist_link () { ...@@ -33,9 +36,9 @@ create_dist_link () {
local main_file="$3" local main_file="$3"
local main_file_minified="$4" local main_file_minified="$4"
#fi #fi
link_and_print "$package_base/$main_file_minified" "$public_base/$package.min.js" link_and_print "$library_base/$main_file_minified" "$public_base/$library.min.js"
link_and_print "$public_base/$package.min.js" "$public_base/$package.js" link_and_print "$public_base/$library.min.js" "$public_base/$library.js"
link_and_print "$package_base/$main_file" "$public_base/$package.development.js" link_and_print "$library_base/$main_file" "$public_base/$library.development.js"
} }
create_package_version () { create_package_version () {
...@@ -73,7 +76,7 @@ link_and_print () { ...@@ -73,7 +76,7 @@ link_and_print () {
if ! [ -e "$1" ]; then if ! [ -e "$1" ]; then
fatal "File not found: $1" fatal "File not found: $1"
fi fi
ln "$1" "$2" ln -f "$1" "$2"
echo "Created hardlink: $2 -> $1" echo "Created hardlink: $2 -> $1"
} }
...@@ -81,3 +84,47 @@ registry_add_library_version () { ...@@ -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" 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 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