#!/bin/bash # Publish package to Meteor's repository, Atmospherejs.com # Make sure Meteor is installed, per https://www.meteor.com/install. # The curl'ed script is totally safe; takes 2 minutes to read its source and check. type meteor >/dev/null 2>&1 || { curl https://install.meteor.com/ | sh; } # sanity check: make sure we're in the root directory of the checkout cd "$( dirname "$0" )/.." ALL_EXIT_CODE=0 # test any package*.js packages we may have, e.g. package.js, package-compat.js for PACKAGE_FILE in meteor/package*.js; do # Meteor expects package.js to be in the root directory of the checkout, so copy there our package file under that name, temporarily cp $PACKAGE_FILE ./package.js # publish package, creating it if it's the first time we're publishing PACKAGE_NAME=$(grep -i name package.js | head -1 | cut -d "'" -f 2) echo "Publishing $PACKAGE_NAME..." # Attempt to re-publish the package - the most common operation once the initial release has # been made. If the package name was changed (rare), you'll have to pass the --create flag. meteor publish "$@"; EXIT_CODE=$? ALL_EXIT_CODE=$(( $ALL_EXIT_CODE + $EXIT_CODE )) if (( $EXIT_CODE == 0 )); then echo "Thanks for releasing a new version. You can see it at" echo "https://atmospherejs.com/${PACKAGE_NAME/://}" else echo "We got an error. Please post it at https://github.com/raix/Meteor-community-discussions/issues/14" fi # rm the temporary build files and package.js rm -rf ".build.$PACKAGE_NAME" versions.json package.js done exit $ALL_EXIT_CODE