summaryrefslogtreecommitdiffstats
path: root/util/win_shared_install.sh
blob: 78346284a9222e30f1350aec7125103455011e2b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#!/bin/bash

download_dir=win_downloaded
wsl_download_dir=wsl_downloaded

function install_utils {
    rm -f -r $download_dir
    mkdir $download_dir

    pushd $download_dir

    echo "Installing dfu-programmer"
    wget 'http://downloads.sourceforge.net/project/dfu-programmer/dfu-programmer/0.7.2/dfu-programmer-win-0.7.2.zip'
    unzip -d dfu-programmer dfu-programmer-win-0.7.2.zip

    echo "Installing dfu-util"
    wget 'http://dfu-util.sourceforge.net/releases/dfu-util-0.9-win64.zip'
    unzip dfu-util-0.9-win64.zip

    echo "Installing teensy_loader_cli"
    wget 'https://www.pjrc.com/teensy/teensy_loader_cli_windows.zip'
    unzip teensy_loader_cli_windows.zip

    echo "Installing Atmel Flip"
    wget 'http://www.atmel.com/images/Flip%20Installer%20-%203.4.7.112.exe'
    mv Flip\ Installer\ \-\ 3.4.7.112.exe FlipInstaller.exe

    echo "Downloading the QMK driver installer"
    wget -qO- https://api.github.com/repos/qmk/qmk_driver_installer/releases | grep browser_download_url | head -n 1 | cut -d '"' -f 4 | wget -i -

    rm -f *.zip

    popd > /dev/null
}

function install_drivers {
    pushd $download_dir
    echo 
    cmd.exe /c "qmk_driver_installer.exe $1 $2 ..\\drivers.txt"
    popd > /dev/null
}

pushd "$dir"

if [ -d "$wsl_download_dir" ]; then
    echo "Renaming existing wsl_download_dir to win_download"
    mv -f "$wsl_download_dir" "$download_dir"
fi

if [ ! -d "$download_dir" ]; then
    install_utils
else
    while true; do
        echo
        read -p "The utils seem to already be downloaded, do you want to re-download them and update to the newest version (Y/N) " res
        case $res in
            [Yy]* ) install_utils; break;;
            [Nn]* ) break;;
            * ) echo "Invalid answer";;
        esac
    done
fi

while true; do
    echo
    read -p "Flip need to be installed if you want to use that for programming, do you want to install it now? (Y/N) " res
    case $res in
        [Yy]* ) cmd.exe /c $download_dir\\FlipInstaller.exe; break;;
        [Nn]* ) break;;
        * ) echo "Invalid answer";;
    esac
done


while true; do
    echo
    echo "Which USB drivers do you want to install?"
    echo "(A)all - All supported drivers will be installed"
    echo "(C)onnected - Only drivers for connected keyboards (in bootloader/flashing mode) will be installed"
    echo "(F)force - Like all, but will also override existing drivers for connected keyboards"
    echo "(N)one - No drivers will be installed, flashing your keyboard will most likely not work"
    read -p "(A/C/F/N)? " res
    case $res in
        [Aa]* ) install_drivers --all; break;;
        [Cc]* ) install_drivers; break;;
        [Ff]* ) install_drivers --all --force; break;;
        [Nn]* ) break;;
        * ) echo "Invalid answer";;
    esac
done

echo 
echo "Creating a softlink to the utils directory as ~/qmk_utils."
echo "This is needed so that the the make system can find all utils it need."
read -p "Press any key to continue (ctrl-c to abort)"
ln -sfn "$dir" ~/qmk_utils

if grep "^source ~/qmk_utils/activate_wsl.sh$" ~/.bashrc
then
    echo
    echo "The line source ~/qmk_utils/activate_wsl.sh is already added to your /.bashrc"
    echo "Not adding it twice"
else
    while true; do
        echo
        echo "Do you want to add 'source ~/qmk_utils/activate_wsl.sh' to the end of you .bashrc file?"
        echo "Without this make won't find the needed utils, so if you don't want to do it automatically,"
        echo "then you have to do it manually."
        read -p "(Y/N)? " res
        case $res in
            [Yy]* ) echo "source ~/qmk_utils/activate_wsl.sh" >> ~/.bashrc; break;;
            [Nn]* ) break;;
            * ) echo "Invalid answer";;
        esac
    done
fi

while true; do
    echo
    echo "Do you want to add a symlink to the QMK repository in your home directory for convenience?"
    echo "This will create a folder 'qmk_firmware' in your home directory."
    echo "In the future you can use this folder instead of the full path on your windows file system"
    read -p "(Y/N)? " res
    case $res in
        [Yy]* ) ln -sfn "$dir/.." ~/qmk_firmware; break;;
        [Nn]* ) break;;
        * ) echo "Invalid answer";;
    esac
done

echo
echo "******************************************************************************"
echo "Installation completed!"
echo "You need to open a new batch command prompt for all the utils to work properly"
echo "******************************************************************************"

popd > /dev/null