2 votos

Único volname de DMGs

Tenemos un proceso de construcción que está haciendo ahora el diseño común de distribución de los DMGs. Esto se hace de una manera que yo he visto en muchos lugares-la DMG se adjunta, a continuación, Buscador hace su trabajo a través de osascript. Sin embargo, la secuencia de comandos debe hacer referencia a la imagen montada por su nombre de volumen, y AFAICT, estos no son los únicos. Puesto que la máquina que está haciendo este trabajo no se dedica a eso, me preocupa que es posible que ya tenga una imagen montada por el mismo nombre (probable, ya que la persona que trabaja con esta máquina es un cliente de la que genera DMGs demasiado).

Hay alguna manera para referirse a un disco único en la osascript si, por ejemplo, sé de su dispositivo o de su punto de montaje? O tal vez hay alguna otra manera de resolver esto, como adjuntar una imagen con diferentes volname así que me puede pasar algo de nombre generado aleatoriamente?

(Estoy sorprendido de que yo no veo ninguna mención de esto en la web, así que tal vez me estoy perdiendo algo más que obvio.)

1voto

lazyden Puntos 264

Después de mucho buscar y mucho maldición, creo que esto es realmente un problema que prácticamente nadie es consciente de, o preocupado. Aún así, no fue capaz de encontrar una solución, no es grande, pero debería funcionar. La idea es montar la DMG en un directorio conocido con un nombre al azar: este nombre (el último elemento en la -mountpoint ruta de acceso) será el name de la propiedad de la disco. Así que el uso de este yo camino a través de todos los discos y buscar aquellos con un juego name -- se quejan si encuentro ninguno o más de uno, de lo contrario, tengo el objeto que necesita listo para trabajar.

mnt="some-random-name-$$"
hdiutil attach -readwrite -noverify -noautoopen \
               -mountpoint "/tmp/$mnt" "/tmp/out.dmg"
/usr/bin/osascript <<-EOF
      tell application "Finder"
        set myDisks to every disk of desktop
        set theDMGDisk to ""
        repeat with d in myDisks
          if name of d = "$mnt"
            if theDMGDisk = ""
              set theDMGDisk to d
            else
              error "Too many attached DMGs found!"
            end if
          end if
        end repeat
        if theDMGDisk = "" then error "Attached DMG not found!"
        -- found a single matching disk, continue
        tell theDMGDisk
... etc ...

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X