Permalink
Browse files

Convert the install script to python

Translate the install.sh script in python to make it platform independent.
Keep install.sh as a wrapper of install.py to not break scripts that
depend on it.
  • Loading branch information...
1 parent cc94a96 commit 1b40d683be7fdc38bf04c2e889036314551f0035 @micbou micbou committed Apr 20, 2015
Showing with 36 additions and 14 deletions.
  1. +33 −0 install.py
  2. +3 −14 install.sh
View
@@ -0,0 +1,33 @@
+#!/usr/bin/env python
+
+import os
+import subprocess
+import sys
+import os.path as p
+import glob
+
+DIR_OF_THIS_SCRIPT = p.dirname( p.abspath( __file__ ) )
+DIR_OF_OLD_LIBS = p.join( DIR_OF_THIS_SCRIPT, 'python' )
+
+
+def Main():
+ build_file = p.join( DIR_OF_THIS_SCRIPT, 'third_party', 'ycmd', 'build.py' )
+
+ if not p.isfile( build_file ):
+ sys.exit( 'File ' + build_file + ' does not exist; you probably forgot '
+ 'to run:\n\tgit submodule update --init --recursive\n\n' )
+
+ python_binary = sys.executable
+ args = ' '.join( sys.argv[1:] )
+ subprocess.call( ' '.join( [ python_binary, build_file, args ] ) )
+
+ # Remove old YCM libs if present so that YCM can start.
+ old_libs = (
+ glob.glob( p.join( DIR_OF_OLD_LIBS, '*ycm_core.*' ) ) +
+ glob.glob( p.join( DIR_OF_OLD_LIBS, '*ycm_client_support.*' ) ) +
+ glob.glob( p.join( DIR_OF_OLD_LIBS, '*clang*.*') ) )
+ for lib in old_libs:
+ os.remove( lib )
+
+if __name__ == "__main__":
+ Main()
View
@@ -1,15 +1,9 @@
#!/bin/sh
-SCRIPT_DIR=$(dirname $0 || exit $?)
-cd $SCRIPT_DIR || exit $?
+echo "WARNING: this script is deprecated. Use the install.py script instead." 1>&2
-build_file=$SCRIPT_DIR/third_party/ycmd/build.py
-if [ ! -f "$build_file" ]; then
- echo "File $build_file doesn't exist; you probably forgot to run:"
- printf "\n\tgit submodule update --init --recursive\n\n"
- exit 1
-fi
+SCRIPT_DIR=$(dirname $0 || exit $?)
command_exists() {
command -v "$1" >/dev/null 2>&1 ;
@@ -20,9 +14,4 @@ if command_exists python2; then
PYTHON_BINARY=python2
fi
-$PYTHON_BINARY "$build_file" "$@" || exit $?
-
-# Remove old YCM libs if present so that YCM can start.
-rm -f python/*ycm_core.* &> /dev/null
-rm -f python/*ycm_client_support.* &> /dev/null
-rm -f python/*clang*.* &> /dev/null
+$PYTHON_BINARY "$SCRIPT_DIR/install.py" "$@" || exit $?

0 comments on commit 1b40d68

Please sign in to comment.