kopia lustrzana https://github.com/c9/core
update smf
rodzic
77a2dcb0a9
commit
0ce3f39808
|
@ -2,13 +2,17 @@
|
|||
set -e
|
||||
cd `dirname $0`/..
|
||||
|
||||
# set -x
|
||||
NAME=$1
|
||||
shift
|
||||
BRANCH=master
|
||||
URL=
|
||||
FORCE=
|
||||
for i in "$@"; do
|
||||
case $i in
|
||||
-d|--debug)
|
||||
set -x
|
||||
shift
|
||||
;;
|
||||
-b=*|--branch=*)
|
||||
BRANCH="${i#*=}"
|
||||
shift
|
||||
|
@ -17,6 +21,10 @@ for i in "$@"; do
|
|||
URL="${i#*=}"
|
||||
shift
|
||||
;;
|
||||
-f|--force|--hard)
|
||||
FORCE=1
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
# unknown option
|
||||
;;
|
||||
|
@ -28,70 +36,106 @@ if [ "$NAME" == "" ]; then
|
|||
exit 0
|
||||
fi
|
||||
|
||||
echo adding name=$NAME url=$URL branch=refs/remotes/origin/$BRANCH
|
||||
|
||||
if [ "$URL" == "" ]; then
|
||||
URL=git@github.com:c9/$NAME.git
|
||||
fi
|
||||
|
||||
if [ -d $NAME/.git ]; then
|
||||
update_one() {
|
||||
echo adding name=$NAME url=$URL branch=refs/remotes/origin/$BRANCH
|
||||
|
||||
if [ "$URL" == "" ]; then
|
||||
URL=git@github.com:c9/$NAME.git
|
||||
fi
|
||||
|
||||
mkdir -p $NAME
|
||||
pushd $NAME
|
||||
|
||||
if ! [ -d .git ]; then
|
||||
git init .
|
||||
git remote add origin "$URL"
|
||||
fi
|
||||
|
||||
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
|
||||
if ! $(git config --get-all remote.origin.fetch | grep -q pull); then
|
||||
git config --add remote.origin.fetch "+refs/pull/*/head:refs/remotes/pull/*";
|
||||
fi
|
||||
git fetch origin
|
||||
git remote set-head origin -a
|
||||
popd
|
||||
|
||||
pushd $NAME
|
||||
HASH=$(git rev-parse --revs-only refs/remotes/origin/$BRANCH)
|
||||
if [ "$FORCE" == "1" ]; then
|
||||
echo "hard reset $NAME to $HASH"
|
||||
git reset $HASH --hard
|
||||
if $(grep -q dependencies "./package.json"); then
|
||||
rm -rf node_modules npm-shrinkwrap.json
|
||||
git reset --hard
|
||||
npm i
|
||||
npm shrinkwrap
|
||||
fi
|
||||
fi
|
||||
popd
|
||||
|
||||
[ -f ./config.json ] || echo "{}" > ./config.json
|
||||
node -e '
|
||||
var name = "'$NAME'";
|
||||
var url = "'$URL'";
|
||||
var hash = "'$HASH'".trim();
|
||||
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);
|
||||
console.log(__dirname)
|
||||
if (fs.existsSync(name + "/npm-shrinkwrap.json")) {
|
||||
var shrinkwrap = JSON.parse(fs.readFileSync(name + "/npm-shrinkwrap.json", "utf8"));
|
||||
deps[name].dependencies = shrinkwrap.dependencies;
|
||||
}
|
||||
});
|
||||
'
|
||||
|
||||
rm -rf "../node_modules/$NAME"
|
||||
ln -s `pwd`/$NAME `pwd`/../node_modules/$NAME
|
||||
}
|
||||
|
||||
|
||||
if [ "$NAME" == "all" ]; then
|
||||
for i in $(ls .); do
|
||||
if [ -d "./$i/.git" ] || [ -f "./$i/package.json" ]; then
|
||||
NAME=$i
|
||||
URL=
|
||||
update_one;
|
||||
fi;
|
||||
done
|
||||
else
|
||||
mkdir -p $NAME
|
||||
git clone $URL $NAME
|
||||
update_one
|
||||
fi
|
||||
|
||||
pushd $NAME
|
||||
HASH=$(git rev-parse --revs-only refs/remotes/origin/$BRANCH)
|
||||
popd
|
||||
|
||||
[ -f ./config.json ] || echo "{}" > ./config.json
|
||||
node -e '
|
||||
var name = "'$NAME'";
|
||||
var url = "'$URL'";
|
||||
var hash = "'$HASH'".trim();
|
||||
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
|
||||
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
"less": "^2.4.0",
|
||||
"mime": "~1.2.9",
|
||||
"mkdirp": "~0.3.5",
|
||||
"msgpack-js": "~0.1.1",
|
||||
"msgpack-js-browser": "~0.1.4",
|
||||
"nak": "https://github.com/cloud9ide/nak.git#6deef931594",
|
||||
"netutil": "~0.0.2",
|
||||
|
|
Ładowanie…
Reference in New Issue