diff --git a/configure b/configure index 55e4db19..62f58c48 100755 --- a/configure +++ b/configure @@ -378,10 +378,14 @@ echo " ||----w | " echo " || || " echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" echo "" -echo "Now:" +echo "Now, if you want to use the current shell," echo "" echo " source $QP_ROOT/quantum_package.rc" echo "" +echo "Or if you want to use a Bash shell adapted for QP:" +echo "" +echo " $QP_ROOT/qpsh" +echo "" diff --git a/etc/ezfio.rc b/etc/ezfio.rc index f92fec42..a75a8c9e 100644 --- a/etc/ezfio.rc +++ b/etc/ezfio.rc @@ -1,15 +1,10 @@ -if [[ -z $QP_EZFIO ]] -then - - export QP_EZFIO=${QP_ROOT}/external/ezfio - - if [[ $SHELL == "/bin/bash" ]] ; then - if [[ -f ${QP_EZFIO}/Bash/ezfio.sh ]]; then - source ${QP_EZFIO}/Bash/ezfio.sh - else - echo "EZFIO is not installed." - fi - fi +export QP_EZFIO=${QP_ROOT}/external/ezfio +if [[ -f ${QP_EZFIO}/Bash/ezfio.sh ]]; then + if [[ "$(ps -p $$ -ocomm=)" == "zsh" ]] ; then + autoload bashcompinit + bashcompinit + fi + source ${QP_EZFIO}/Bash/ezfio.sh fi diff --git a/etc/libraries.rc b/etc/libraries.rc index af90c1b0..c41daac1 100644 --- a/etc/libraries.rc +++ b/etc/libraries.rc @@ -1,9 +1,6 @@ -if [[ -z $QP_LIB ]] -then -: +QP_LIB="" - # Include here the optional external libraries to link with your binaries, - # for example +# Include here the optional external libraries to link with your binaries, +# for example : # export QP_LIB="$QP_LIB -lint" -fi diff --git a/etc/network.rc b/etc/network.rc index e02594b7..1fdb91ef 100644 --- a/etc/network.rc +++ b/etc/network.rc @@ -1,11 +1,5 @@ -if [[ -z $QP_NIC ]] -then -: - # Choose the correct network interface if the default one is incorrect # export QP_NIC=ib0 # export QP_NIC=eth0 -fi - diff --git a/etc/ninja.rc b/etc/ninja.rc index 59a3e092..6f717599 100644 --- a/etc/ninja.rc +++ b/etc/ninja.rc @@ -1,8 +1 @@ -if [[ -z $NINJA ]] -then - - export NINJA=${QP_ROOT}/bin/ninja - -fi - - +export NINJA=${QP_ROOT}/bin/ninja diff --git a/etc/qp.rc b/etc/qp.rc new file mode 100644 index 00000000..63104dc2 --- /dev/null +++ b/etc/qp.rc @@ -0,0 +1,157 @@ +if [[ "$(ps -p $$ -ocomm=)" == "zsh" ]] ; then + autoload bashcompinit + bashcompinit +fi + +source ${QP_ROOT}/etc/ezfio.rc + +function _qp_usage() +{ + echo " +Usage: + qp set_file EZFIO_DIRECTORY + qp unset_file + + qp has DIRECTORY ITEM + qp get DIRECTORY ITEM + qp set DIRECTORY ITEM VALUE : Scalar values + qp set DIRECTORY ITEM : Array values read from stdin + + qp run PROGRAM + qp srun PROGRAM + qp mpirun PROGRAM + + qp set_frozen_core + qp create_ezfio_from_xyz -help + qp set_mo_class -help +" +} + +function qp() +{ + case $1 in + "has"|"set"|"get"|"set_file"|"unset_file") + ezfio $@ + ;; + + "set_frozen_core") + shift + qp_set_frozen_core ${EZFIO_FILE} + ;; + + "create_ezfio_from_xyz") + shift + [[ -n $EZFIO_FILE ]] && ezfio unset_file + NAME=$(qp_create_ezfio_from_xyz $@) + ezfio set_file $NAME + ;; + + "set_mo_class") + shift + qp_set_mo_class ${EZFIO_FILE} $@ + ;; + + "edit") + shift + qp_edit ${EZFIO_FILE} + ;; + + "run") + shift + qp_run $@ ${EZFIO_FILE} + ;; + + "srun") + shift + qp_srun $@ ${EZFIO_FILE} + ;; + + "mpirun") + shift + qp_mpirun $@ ${EZFIO_FILE} + ;; + + *) + _qp_usage + ;; + esac + +} + + +_Complete() +{ + local cur + + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + prev2="${COMP_WORDS[COMP_CWORD-2]}" + + if [[ -n ${EZFIO_FILE} && -d ${EZFIO_FILE} ]] + then + + case "${prev2}" in + "set"|has|get) + if [[ ${prev} == "qp" ]] ; then + COMPREPLY=( $(compgen -W "set set_frozen_core set_mo_class" -- $cur ) ) + elif [[ ! -d ${EZFIO_FILE}/${prev} ]] ; then + COMPREPLY=( $(compgen -W "" -- $cur ) ) + else + COMPREPLY=( $(compgen -W "$(cd ${EZFIO_FILE}/${prev} ; ls | sed 's/\.gz//' )" -- $cur ) ) + fi + return 0 + ;; + *) + COMPREPLY=( $(compgen -W "$(\ls)" -- $cur ) ) + esac + + case "${prev}" in + run|srun|mpirun) + COMPREPLY=( $(compgen -W "$(cat ${QP_ROOT}/data/executables | cut -d ' ' -f 1)" -- $cur ) ) + return 0 + ;; + unset_file|edit|set_frozen_core) + COMPREPLY=() + return 0 + ;; + set_mo_class) + COMPREPLY=( $(compgen -W "-h -core -inact -act -virt -del" -- $cur ) ) + return 0 + ;; + set|has|get) + COMPREPLY=( $(compgen -W "$(cd ${EZFIO_FILE} ; \ls -d */ | sed 's|/||g')" -- $cur ) ) + return 0 + ;; + *) + COMPREPLY=( $(compgen -W 'has get set unset_file edit \ + run srun mpirun set_frozen_core \ + set_mo_class create_ezfio_from_xyz \ + -h' -- $cur ) ) + return 0 + ;; + esac + + else + + case "${prev}" in + set_file) + COMPREPLY=( $(compgen -W "$(\ls -d */ | sed 's|/||g')" -- ${cur} ) ) + return 0 + ;; + create_ezfio_from_xyz) + COMPREPLY=( $(compgen -W "$(\ls)" -- ${cur} ) ) + return 0 + ;; + *) + COMPREPLY=( $(compgen -W 'set_file \ + create_ezfio_from_xyz \ + -h' -- $cur ) ) + return 0 + ;; + esac + + fi +} + +complete -F _Complete qp diff --git a/ocaml/qp_create_ezfio_from_xyz.ml b/ocaml/qp_create_ezfio_from_xyz.ml index 13bcf7bf..4873c95b 100644 --- a/ocaml/qp_create_ezfio_from_xyz.ml +++ b/ocaml/qp_create_ezfio_from_xyz.ml @@ -660,7 +660,7 @@ let run ?o b au c d m p cart xyz_file = end; raise ex; end - in () + in print_endline ezfio_file diff --git a/qpsh b/qpsh new file mode 100755 index 00000000..bea64a09 --- /dev/null +++ b/qpsh @@ -0,0 +1,11 @@ +#!/bin/bash + +export QP_ROOT=$(dirname $0) + +exec bash --init-file <(cat << EOF +PS1="[\u@\h \W] |\\\${EZFIO_FILE}> " +source $QP_ROOT/quantum_package.rc +EOF +) + + diff --git a/quantum_package.rc b/quantum_package.rc index 808fb8e0..1c7ce73d 100644 --- a/quantum_package.rc +++ b/quantum_package.rc @@ -5,10 +5,10 @@ QP_ROOT="/NOT/FOUND" case "$(ps -p $$ -ocomm=)" in - zsh) + "zsh") QP_ROOT=$(dirname $0) ;; - bash) + *) QP_ROOT=$(dirname ${BASH_SOURCE}[0]) ;; esac