diff --git a/bash/sources/22_win-setups b/bash/sources/22_win-setups index 3b55611..ff82f55 100755 --- a/bash/sources/22_win-setups +++ b/bash/sources/22_win-setups @@ -2,15 +2,28 @@ function mkuserdirs { - local PROFILE PKG_DIR i - PROFILE=$( cygpath $USERPROFILE ) - for i in $( ls $PROFILE | grep -o "^[A-Z][a-z]\+$" ); do - ln -vs "$PROFILE/$i" $HOME/ + local PKG_DIR i IFS=$'\n' + for i in $( reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" \ + | grep "^ [A-Za-z ]\+" \ + | tr -d '\r' \ + | sed -e "s/.\+REG_EXPAND_SZ[ ]\+//g" + ); do + + if [[ "$i" =~ .*"\\AppData\\".* ]]; then + continue + fi + + if [[ "$i" =~ "%USERPROFILE".* ]]; then + i=$USERPROFILE${i/\%USERPROFILE\%/} + fi + + ln -vs "$( cygpath "$i" )" $HOME/ done # Package Directory - PKG_DIR="$APPDATA/../Local/Packages" + PKG_DIR=$( cygpath "$APPDATA/../Local/Packages" ) if [ -d "$PKG_DIR" ]; then ln -vs "$PKG_DIR" $HOME/ fi + }