@@ -59,20 +59,34 @@ toggle-devmode:
5959 IMAGE_INFO_FILE ="${IMAGE_INFO_FILE:-/usr/share/ublue-os/image-info.json}"
6060 IMAGE_NAME ="$(jq -rc '."image-name"' "${IMAGE_INFO_FILE}" ) "
6161 IMAGE_REF ="$(jq -rc '."image-ref"' "${IMAGE_INFO_FILE}" | sed "s/.*ghcr/ghcr/" ) "
62- CURRENT_IMAGE ="${IMAGE_REF}:$(jq -rc '."image-tag"' "${IMAGE_INFO_FILE}" ) "
62+ IMAGE_TAG ="$(jq -rc '."image-tag"' "${IMAGE_INFO_FILE}" ) "
63+ CURRENT_IMAGE ="${IMAGE_REF}:${IMAGE_TAG}"
6364 set +e
6465
65- if grep -q -E -e "dx$ " <<< "${IMAGE_NAME}" ; then
66+ if grep -q -E -e "-dx(-|$) " <<< "${IMAGE_NAME}" ; then
6667 gum confirm "Would you like to disable developer mode?" || exit 0
6768 echo "Rebasing to a non developer image"
68- NEW_IMAGE ="$(sed "s/\-dx//" <<< $CURRENT_IMAGE ) "
69+ # Remove -dx from image name
70+ NEW_NAME ="$(sed "s|-dx-|-|; s|-dx$||" <<< "${IMAGE_NAME}" ) "
71+ NEW_IMAGE ="${IMAGE_REF}:${IMAGE_TAG}"
72+ NEW_IMAGE ="${NEW_IMAGE/${IMAGE_NAME}:/${NEW_NAME}:}"
6973 pkexec bootc switch --enforce-container-sigpolicy "${NEW_IMAGE}"
7074 exit 0
7175 fi
7276
7377 gum confirm "Would you like to enable developer mode?" || exit 0
7478 echo "Rebasing to a developer image"
75- NEW_IMAGE ="$(sed "s/${IMAGE_NAME}/${IMAGE_NAME}-dx/" <<< "${CURRENT_IMAGE}" ) "
79+ # Insert -dx after first component of image name
80+ FIRST ="${IMAGE_NAME%%-*}"
81+ if [[ "${IMAGE_NAME}" == "${FIRST}" ]]; then
82+ # No hyphen in name, append -dx
83+ NEW_NAME ="${IMAGE_NAME}-dx"
84+ else
85+ # Has hyphen, insert -dx after first component
86+ REST ="${IMAGE_NAME# *-}"
87+ NEW_NAME="${FIRST}-dx-${REST}"
88+ fi
89+ NEW_IMAGE ="${CURRENT_IMAGE/${IMAGE_NAME}:/${NEW_NAME}:}"
7690 pkexec bootc switch --enforce-container-sigpolicy "${NEW_IMAGE}"
7791 if gum confirm "Do you want to also install the default development flatpaks?" ; then
7892 ujust install-system-flatpaks 0 1
0 commit comments