@@ -6,59 +6,62 @@ q_home=$HOME/q
66
77# Check if WSL
88if isWsl; then
9- # Check if kdb+ binaries exist
10- if [ -d $win_q_home ]; then
11- # Copy q version if it does not exist
12- if ! find " $q_home " -maxdepth 1 -type d -name ' [0-9].[0-9]' | grep -q . ; then
13- echo " 🚀 Setting up kdb+ binaries for the first time"
14- mkdir -p $q_home
15- cp $win_q_home /kc.lic $q_home
16- # Copy q version programmatically
17- if /bin/ls " $win_q_home " /[0-9].[0-9] > /dev/null 2>&1 ; then
18- for VER in $( /bin/ls -d $win_q_home /[0-9].[0-9]) ; do
19- VER=$( echo $VER | awk -F' /' ' {print $NF}' )
20- mkdir -p $q_home /$VER
21- cp -r $win_q_home /$VER /{l64,q.k} $q_home /$VER
22- done
23- fi
24- fi
25- fi
269 ID=$( awk -F= ' $1=="ID" { print $2; }' /etc/os-release)
2710 case $ID in
2811 # HACK: For distros that uses musl but does not support gcompat:
2912 # - The convoluted solution is to run the windows kdb+ binaries
3013 # - WARN: There may be compatibility issues
31- muslDistro)
32- # Set q version alias programmatically
33- if /bin/ls " $win_q_home " /[0-9].[0-9] > /dev/null 2>&1 ; then
14+ musl|unsupported|distro|names)
15+ WIN_Q=true
16+ ;;
17+ * )
18+ ;;
19+ esac
20+
21+ # Check if kdb+ binaries exist
22+ if [ -d $win_q_home ]; then
23+ if [ ! -d " $q_home " ]; then
24+ echo " 🚀 Setting up kdb+ binaries for the first time"
25+ mkdir $q_home
26+ elif ! find " $q_home " -mindepth 1 -maxdepth 1 -type d -name ' [0-9].[0-9]' | grep -q . ; then
27+ echo " 🚀 Setting up kdb+ binaries for the first time"
28+ fi
29+ if [ -f " $win_q_home /kc.lic" ] && [ ! -f " $q_home /kc.lic" ]; then
30+ cp $win_q_home /kc.lic $q_home
31+ fi
32+ # Check if q versions exists
33+ if find " $win_q_home " -mindepth 1 -maxdepth 1 -type d -name ' [0-9].[0-9]' | grep -q . ; then
34+ # Copy q versions programmatically
3435 for VER in $( /bin/ls -d $win_q_home /[0-9].[0-9]) ; do
3536 VER=$( echo $VER | awk -F' /' ' {print $NF}' )
36- # HACK: Need to copy q version q.k file to C:\q
37- # WARN: Do not set windows environment QHOME and QLIC
38- eval " alias $( echo q$VER | tr -d ' .' ) ='cp $win_q_home /$VER /q.k $win_q_home && $win_q_home /$VER /w64/q.exe'"
37+ if [ ! -d " $q_home /$VER " ]; then
38+ mkdir $q_home /$VER
39+ cp -r $win_q_home /$VER /{l64,q.k} $q_home /$VER
40+ fi
41+ if [ " $WIN_Q " = " true" ]; then
42+ # HACK: Need to copy q version q.k file to C:\q
43+ # WARN: Do not set windows environment QHOME and QLIC
44+ eval " alias $( echo q$VER | tr -d ' .' ) ='cp $win_q_home /$VER /q.k $win_q_home && $win_q_home /$VER /w64/q.exe'"
45+ # Set default q version
46+ if [ " $VER " = " $q_ver " ]; then
47+ alias q=" cp $win_q_home /$q_ver /q.k $win_q_home && $win_q_home /$q_ver /w64/q.exe"
48+ fi
49+ fi
3950 done
51+ [ " $WIN_Q " = " true" ] && return
4052 fi
41- # Set default q version
42- [ -d $win_q_home /$q_ver ] && alias q=" cp $win_q_home /$q_ver /q.k $win_q_home && $win_q_home /$q_ver /w64/q.exe"
43- return
44- ;;
45- * )
46- ;;
47- esac
53+ fi
4854fi
4955
50- q_home=$HOME /q
5156[ -d $q_home ] && \
5257 export QLIC=$q_home && \
5358 export q_home || return
5459[ -f $q_home /q.q ] && export QINIT=$q_home /q.q
5560
56- if [ -d $HOME /Qurious ]; then
57- if readlink -m $q_home /q.q | grep -q ' /dotfiles/' ; then
58- ln -sf $q_home /q.q $HOME /Qurious/q.q
59- ln -sf $q_home /q.test.q $HOME /Qurious/q.test.q
60- fi
61- fi
61+ [ -d $HOME /Qurious ] && [ ! -L $q_home /q.q ] && \
62+ echo " 🔗 Symlinking Qurious to q.q and q.test.q" && \
63+ ln -sf $q_home /q.q $HOME /Qurious/q.q && \
64+ ln -sf $q_home /q.test.q $HOME /Qurious/q.test.q
6265
6366run_q () {
6467 VER=$1
@@ -74,16 +77,17 @@ run_q() {
7477 fi
7578 eval " $QCMD "
7679}
77- # Set q version alias programmatically if directory exist
78- if find " $q_home " -maxdepth 1 -type d -name ' [0-9].[0-9]' | grep -q . ; then
79- if /bin/ls " $q_home " /[0-9].[0-9] > /dev/null 2>&1 ; then
80- for VER in $( /bin/ls -d $q_home /[0-9].[0-9]) ; do
81- VER=$( echo $VER | awk -F' /' ' {print $NF}' )
82- eval " alias $( echo q$VER | tr -d ' .' ) ='run_q '$VER "
83- done
84- fi
80+ # Check if q versions exists
81+ if find " $q_home " -mindepth 1 -maxdepth 1 -type d -name ' [0-9].[0-9]' | grep -q . ; then
82+ # Set q versions alias programmatically
83+ for VER in $( /bin/ls -d $q_home /[0-9].[0-9]) ; do
84+ VER=$( echo $VER | awk -F' /' ' {print $NF}' )
85+ eval " alias $( echo q$VER | tr -d ' .' ) ='run_q '$VER "
86+ # Set default q version
87+ if [ " $VER " = " $q_ver " ]; then
88+ alias q=" run_q $q_ver "
89+ fi
90+ done
8591fi
86- # Set default q version
87- [ -d $q_home /$q_ver ] && alias q=" run_q $q_ver "
8892# List all available q versions
89- alias qv=" /bin/ ls -d $q_home /[0-9].[0-9]"
93+ alias qv=" ls -d $q_home /[0-9].[0-9]"
0 commit comments