Skip to content

Commit

Permalink
Convert the install script to python
Browse files Browse the repository at this point in the history
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
micbou committed Aug 23, 2015
1 parent cc94a96 commit 1b40d68
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 14 deletions.
33 changes: 33 additions & 0 deletions install.py
@@ -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()
17 changes: 3 additions & 14 deletions install.sh
@@ -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 ;
Expand All @@ -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.