kopia lustrzana https://github.com/c9/core
76 wiersze
1.9 KiB
Bash
Executable File
76 wiersze
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
cd `dirname $0`/..
|
|
|
|
NAME=$1
|
|
URL=$2
|
|
if [ "$NAME" == "" ]; then
|
|
echo "add name [url]"
|
|
exit 0
|
|
fi
|
|
|
|
if [ "$URL" == "" ]; then
|
|
URL=git@github.com:c9/$NAME.git
|
|
fi
|
|
|
|
if [ -d $NAME/.git ]; then
|
|
pushd $NAME
|
|
OLD_URL=$(git config --get remote.origin.url)
|
|
if [ "$OLD_URL" != "$URL" ]; then
|
|
echo "folder $NAME exists and points to $OLD_URL"
|
|
exit 1
|
|
fi
|
|
git fetch origin
|
|
popd
|
|
else
|
|
mkdir -p $NAME
|
|
git clone $URL $NAME
|
|
fi
|
|
|
|
pushd $NAME
|
|
HASH=$(git rev-parse --revs-only refs/remotes/origin/master)
|
|
popd
|
|
|
|
[ -f ./config.json ] || echo "{}" > ./config.json
|
|
node -e '
|
|
var name = "'$NAME'";
|
|
var url = "'$URL'";
|
|
var hash = "'$HASH'"
|
|
var fs = require("fs");
|
|
|
|
function updateJSON(path, fn) {
|
|
var text = fs.readFileSync(path, "utf8");
|
|
var indent = text.match(/^\s*(?=")/m);
|
|
indent = indent && indent[0] || 4;
|
|
console.log(indent)
|
|
var r = JSON.parse(text);
|
|
r = fn(r) || r;
|
|
text = JSON.stringify(r, null, indent) + "\n";
|
|
fs.writeFileSync(path, text, "utf8");
|
|
}
|
|
|
|
updateJSON("./config.json", function(config) {
|
|
var packages = config.packages || (config.packages = {});
|
|
config.packages[name] = {
|
|
name: name,
|
|
hash: hash,
|
|
url: url,
|
|
};
|
|
});
|
|
updateJSON("../package.json", function(package) {
|
|
var deps = package.dependencies;
|
|
console.log(deps[name], hash)
|
|
deps[name] = deps[name].replace(/#[a-f\d]+$/i, "#" + hash)
|
|
console.log(deps[name], hash)
|
|
});
|
|
updateJSON("../npm-shrinkwrap.json", function(package) {
|
|
var deps = package.dependencies;
|
|
deps[name].from = deps[name].from.replace(/#[a-f\d]+$/i, "#" + hash);
|
|
deps[name].resolved = deps[name].resolved.replace(/#[a-f\d]+$/i, "#" + hash);
|
|
});
|
|
'
|
|
|
|
rm -rf "../node_modules/$NAME"
|
|
ln -s `pwd`/$NAME `pwd`/../node_modules/$NAME
|
|
|