Mac создает псевдоним для DMG-файла без фиксированного пользователя в нем - PullRequest
1 голос
/ 09 августа 2010

Я хочу поместить псевдоним в фиксированную папку, а именно в папку шаблонов iWorks в DMG.

Каталог:

/Users/USERNAME/Library/Application Support/iWork/Pages/Templates/My Templates

Моя проблема в том, что я хочу поместитьэто в DMG, чтобы люди могли легко установить шаблон.Но в то время как он прекрасно работает с папкой Application, в папке с шаблонами всегда есть мое имя пользователя.Так что, если кто-то еще открывает его, псевдоним указывает на каталог с моим именем пользователя, которое, конечно, не существует на другом Mac.

У кого-нибудь есть идеи, как это исправить?

Спасибо.


Объединяя все ваши комментарии со следующим, я получаю каплю, работающую так, как я хочу.

on open thefiles    
    set outputFolder to (path to application support folder from user domain as text) & "iWork:Pages:Templates:My Templates:"
    do shell script "/bin/mkdir -p " & quoted form of POSIX path of outputFolder
    tell application "Finder"
        duplicate thefiles to outputFolder
    end tell    
end open

Проблема в том, что, хотя она работает на моем Mac,не может использовать его, находясь внутри файла DMG.Я не могу ничего перетянуть на него.Есть идеи?

Спасибо, пока.

Ответы [ 3 ]

5 голосов
/ 09 августа 2010

Папка ~ представляет домашний каталог пользователей.Таким образом, ваша папка будет ~/Library/Application Support/iWork/Pages/Templates/My Templates. В ответ на ваш комментарий: Я не уверен, возможно ли это.Вы можете попробовать ln из терминала.Это утилита для создания ссылок.Но я думаю, что он просто конвертирует ~ в фактический путь вашего домашнего каталога, когда вы его используете.И я думаю, что вам придется создать символическую ссылку, в отличие от жесткой ссылки, которую некоторые файловые системы могут не поддерживать (хотя все маки должны это делать).Другой возможностью было бы создать простую каплю Applescript, которая использует сценарий оболочки для перемещения файла, который вы перетаскиваете на него, по нужному пути.Вставьте следующий код в редактор скриптов и сохраните его как приложение или комплект приложений (неважно, какой):

on open thefile
 do shell script "mv " & POSIX path of thefile & " ~/Library/Application\ Support/iWork/Pages/Templates/My\ Templates/"
end open

Когда вы перетаскиваете файл в приложение, которое вы сделали, он перемещается в ваш каталог.,Вы можете изменить значок, щелкнув правой кнопкой мыши приложение и выбрав «Получить информацию», а затем вставив новый значок поверх старого, чтобы он выглядел как папка.

1 голос
/ 25 октября 2010

Вам нужны относительные псевдонимы.

Старый пакет может их создавать: this osxutils .

Другое решение - создать символическую ссылку.

1 голос
/ 09 августа 2010

Вы можете использовать этот яблочный скрипт.Сохраните его как приложение и включите в свой установочный диск.Все, что нужно сделать пользователю, это запустить приложение applecript для установки псевдонима ... или вы можете запустить его автоматически из своего собственного кода после того, как поместите приложение на диск пользователя.Просто исправьте переменную inputFile, чтобы она указывала на ваш файл.В этом примере я только что получил изображение из приложения Address Book.app.

set inputFile to (path to applications folder as text) & "Address Book.app:Contents:Resources:AB16.png"

-- first create the outputFolder if necessary
set outputFolder to (path to application support folder from user domain as text) & "iWork:Pages:Templates:My Templates:"
do shell script "/bin/mkdir -p " & quoted form of POSIX path of outputFolder

-- create the alias in the outputFolder
tell application "Finder"
    make new alias file at folder outputFolder to file inputFile
end tell
...