22
33set -e
44
5+ FEATURE_DIR=" /usr/local/share/stuartleeks-devcontainer-features/azure-cli-persistence"
6+ LOG_FILE=" $FEATURE_DIR /log.txt"
7+
8+ log () {
9+ echo " $1 "
10+ echo " $1 " >> " $LOG_FILE "
11+ }
12+
13+ if command -v sudo > /dev/null; then
14+ sudo chown -R " $( id -u) :$( id -g) " " $LOG_FILE "
15+ else
16+ chown -R " $( id -u) :$( id -g) " " $LOG_FILE "
17+ fi
18+
19+ log " In OnCreate script"
20+
521fix_permissions () {
622 local dir
723 dir=" ${1} "
@@ -16,3 +32,63 @@ fix_permissions() {
1632}
1733
1834fix_permissions " /dc/azure"
35+
36+ # Fix up the cliextensions folder in case the user had an old .azure folder
37+ # that had extensions installed in it (e.g. using the azure-cli feature and specifying extensions to install)
38+
39+ if [ -d " $HOME /.azure-old" ]; then
40+ got_old_azure_folder=true
41+ else
42+ got_old_azure_folder=false
43+ fi
44+
45+
46+ old_cliextensions_folder=" $HOME /.azure-old/cliextensions"
47+ new_cliextensions_folder=" $HOME /.azure/cliextensions"
48+ new_cliextensions_folder_parent=" $HOME /.azure"
49+
50+ if [ " $got_old_azure_folder " = true ]; then
51+ if [ -d " $old_cliextensions_folder " ]; then
52+ log " cliextensions folder found in old .azure folder"
53+ if [ -d " $new_cliextensions_folder " ]; then
54+ if [ -L " $new_cliextensions_folder " ]; then
55+ symlink_target=$( readlink " $new_cliextensions_folder " )
56+ if [ " $symlink_target " = " $old_cliextensions_folder " ]; then
57+ log " cliextensions folder ('$new_cliextensions_folder ') already symlinked to '$old_cliextensions_folder ' - no action needed"
58+ else
59+ log " cliextensions folder ('$new_cliextensions_folder ') is a symlink, but points to a different location ('$symlink_target ')"
60+ exit 1
61+ fi
62+ else
63+ log " cliextensions folder ('$new_cliextensions_folder ') already exists in but is not a symlink"
64+ exit 1
65+ fi
66+ else
67+ log " cliextensions folder ('$new_cliextensions_folder ') does not exist - creating symlink to '$old_cliextensions_folder '"
68+ # log "-----------------------"
69+ # sudo ls -al "/dc"
70+ # log "-----------------------"
71+ # ls -al "$HOME"
72+ # log "-----------------------"
73+ # ls -al "$new_cliextensions_folder_parent"
74+ # log "-----------------------"
75+ # ls -al "$new_cliextensions_folder_parent/"
76+ # log "-----------------------"
77+ # # log "ls -al $new_cliextensions_folder_parent"
78+ # # ls -al "$new_cliextensions_folder_parent" >> "$LOG_FILE"
79+ if command -v sudo > /dev/null; then
80+ sudo ln -s " $old_cliextensions_folder " " $new_cliextensions_folder_parent "
81+ else
82+ ln -s " $old_cliextensions_folder " " $new_cliextensions_folder_parent "
83+ fi
84+ fi
85+ fi
86+ else
87+ if [ -L " $new_cliextensions_folder " ]; then
88+ symlink_target=$( readlink " $new_cliextensions_folder " )
89+ if [ " $symlink_target " = " $old_cliextensions_folder " ]; then
90+ log " cliextensions folder ('$new_cliextensions_folder ') is a symlink to '$old_cliextensions_folder ' - removing symlink"
91+ rm " $new_cliextensions_folder "
92+ fi
93+ fi
94+ fi
0 commit comments