@@ -114,13 +114,30 @@ cmd_collect()
114114 # persistent across user sessions). Fall back to $HOME if we can't create/write there
115115 if [ -z " $WORK_DIR " ]; then
116116 if [ -w /var/lib/support ] 2> /dev/null; then
117+ # Already writable, use it
117118 WORK_DIR=" /var/lib/support"
118- elif mkdir -p /var/lib/support 2> /dev/null; then
119- WORK_DIR=" /var/lib/support"
120- elif [ -n " $SUDO " ] && $SUDO mkdir -p /var/lib/support 2> /dev/null && \
121- $SUDO chown " $( id -u) :$( id -g) " /var/lib/support 2> /dev/null; then
122- WORK_DIR=" /var/lib/support"
123- else
119+ elif [ ! -e /var/lib/support ]; then
120+ # Doesn't exist, try to create it
121+ if mkdir -p /var/lib/support 2> /dev/null; then
122+ WORK_DIR=" /var/lib/support"
123+ elif [ -n " $SUDO " ] && $SUDO mkdir -p /var/lib/support 2> /dev/null && \
124+ $SUDO chown " $( id -u) :$( id -g) " /var/lib/support 2> /dev/null; then
125+ WORK_DIR=" /var/lib/support"
126+ fi
127+ elif [ -d /var/lib/support ]; then
128+ # Exists but not writable, try to fix permissions with sudo
129+ # Try chmod first (might just be permission issue), then chown if needed
130+ if $SUDO chmod 755 /var/lib/support 2> /dev/null && \
131+ $SUDO chown " $( id -u) :$( id -g) " /var/lib/support 2> /dev/null; then
132+ # Verify it's actually writable now
133+ if [ -w /var/lib/support ] 2> /dev/null; then
134+ WORK_DIR=" /var/lib/support"
135+ fi
136+ fi
137+ fi
138+
139+ # Fall back to $HOME if we couldn't set up /var/lib/support
140+ if [ -z " $WORK_DIR " ]; then
124141 WORK_DIR=" ${HOME} "
125142 echo " Warning: Cannot write to /var/lib/support, using home directory instead." >&2
126143 echo " (This may fill up your home directory on systems with limited space)" >&2
@@ -145,7 +162,11 @@ cmd_collect()
145162 trap cleanup EXIT INT TERM
146163
147164 # Create collection directory
148- mkdir -p " ${COLLECT_DIR} "
165+ if ! mkdir -p " ${COLLECT_DIR} " ; then
166+ echo " Error: Cannot create collection directory: ${COLLECT_DIR} " >&2
167+ echo " Check permissions for ${WORK_DIR} " >&2
168+ exit 1
169+ fi
149170
150171 # Helper function to run commands with output to specific file
151172 collect ()
0 commit comments