summaryrefslogtreecommitdiffstats
path: root/rebuild-wekan.sh
diff options
context:
space:
mode:
Diffstat (limited to 'rebuild-wekan.sh')
-rwxr-xr-xrebuild-wekan.sh69
1 files changed, 59 insertions, 10 deletions
diff --git a/rebuild-wekan.sh b/rebuild-wekan.sh
index c1f9f4a0..42364515 100755
--- a/rebuild-wekan.sh
+++ b/rebuild-wekan.sh
@@ -10,6 +10,55 @@ function pause(){
read -p "$*"
}
+function cprec(){
+ if [[ -d "$1" ]]; then
+ if [[ ! -d "$2" ]]; then
+ sudo mkdir -p "$2"
+ fi
+
+ for i in $(ls -A "$1"); do
+ cprec "$1/$i" "$2/$i"
+ done
+ else
+ sudo cp "$1" "$2"
+ fi
+}
+
+# sudo npm doesn't work right, so this is a workaround
+function npm_call(){
+ TMPDIR="/tmp/tmp_npm_prefix"
+ if [[ -d "$TMPDIR" ]]; then
+ rm -rf $TMPDIR
+ fi
+ mkdir $TMPDIR
+ NPM_PREFIX="$(npm config get prefix)"
+ npm config set prefix $TMPDIR
+ npm "$@"
+ npm config set prefix "$NPM_PREFIX"
+
+ echo "Moving files to $NPM_PREFIX"
+ for i in $(ls -A $TMPDIR); do
+ cprec "$TMPDIR/$i" "$NPM_PREFIX/$i"
+ done
+ rm -rf $TMPDIR
+}
+
+function wekan_repo_check(){
+ git_remotes="$(git remote show 2>/dev/null)"
+ res=""
+ for i in $git_remotes; do
+ res="$(git remote get-url $i | sed 's/.*wekan\/wekan.*/wekan\/wekan/')"
+ if [[ "$res" == "wekan/wekan" ]]; then
+ break
+ fi
+ done
+
+ if [[ "$res" != "wekan/wekan" ]]; then
+ echo "$PWD is not a wekan repository"
+ exit;
+ fi
+}
+
echo
PS3='Please enter your choice: '
options=("Install Wekan dependencies" "Build Wekan" "Quit")
@@ -24,7 +73,7 @@ do
if [ "$(grep -Ei 'buntu|mint' /etc/*release)" ]; then
sudo apt install -y build-essential git curl wget
# sudo apt -y install nodejs npm
-# sudo npm -g install n
+# npm_call -g install n
# sudo n 8.12.0
fi
@@ -70,10 +119,10 @@ do
fi
## Latest npm with Meteor 1.6
- sudo npm -g install npm
- sudo npm -g install node-gyp
+ npm_call -g install npm
+ npm_call -g install node-gyp
# Latest fibers for Meteor 1.6
- sudo npm -g install fibers@2.0.0
+ npm_call -g install fibers@2.0.0
# Install Meteor, if it's not yet installed
curl https://install.meteor.com | bash
# mkdir ~/repos
@@ -85,10 +134,10 @@ do
;;
"Build Wekan")
echo "Building Wekan."
- cd ~/repos/wekan
+ wekan_repo_check
rm -rf packages
- mkdir -p ~/repos/wekan/packages
- cd ~/repos/wekan/packages
+ mkdir packages
+ cd packages
git clone --depth 1 -b master https://github.com/wekan/flow-router.git kadira-flow-router
git clone --depth 1 -b master https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core
git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-cas.git
@@ -101,7 +150,7 @@ do
sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js
fi
- cd ~/repos/wekan
+ cd ..
rm -rf node_modules
meteor npm install
rm -rf .build
@@ -113,11 +162,11 @@ do
#cd ~/repos/wekan/.build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt
#rm -rf node_modules/bcrypt
#meteor npm install bcrypt
- cd ~/repos/wekan/.build/bundle/programs/server
+ cd .build/bundle/programs/server
rm -rf node_modules
meteor npm install
#meteor npm install bcrypt
- cd ~/repos
+ cd ../../../..
echo Done.
break
;;