Создание Icon \ r файла для замены иконок на рабочем столе OSX, нерегулярные результаты - PullRequest
0 голосов
/ 13 февраля 2019

Я создаю приложение osx для смены значков на рабочем столе (аналогично LiteIcons, за исключением того, что в нем отсутствуют нужные мне функции).Я использую Electron (с node.js и shell) для замены иконок.

Пока у меня есть папка с иконками с тем же именем, что и приложения, для которых я хочу поменять иконки.Таким образом, код выбирает каждый файл, находит приложение и меняет значок (файл .icns).

Пока это мой код:

files.forEach(function (file, index) {
    var file_path = path.join(dir + '/icons', file);
    var application_name = path.basename(file_path, path.extname(file_path));
    var app_path = '/Applications/'+ application_name + '.app';
if (fs.existsSync(app_path)) {
    console.log('--', file);

    var info_plist = plist.parse(fs.readFileSync( app_path + '/Contents/Info.plist', 'utf8'));
    var icon_filename = info_plist.CFBundleIconFile;

    if (!icon_filename.endsWith(".icns")) {
        icon_filename += '.icns';
    }



    exec('echo read "\'icns\' (-16455)" \\"' + file_path + '\\"";" >> Icon.rsrc', {
            cwd: app_path
    }, function(error, stdout, stderr) {

        console.log('hdo', error, stdout, stderr);



        exec('Rez -a Icon.rsrc -o FileName.ext', {
            cwd: app_path
        }, function(error, stdout, stderr) {


        exec('SetFile -a C FileName.ext', {
            cwd: app_path
        }, function(error, stdout, stderr) {



            exec("Rez -a Icon.rsrc -o Icon$'\r'", {
                cwd: app_path
            }, function(error, stdout, stderr) {


                exec("SetFile -a C .'", {
                    cwd: app_path
                }, function(error, stdout, stderr) {});

                });
            });

        });

    });
    /*** ----------- */






    }
});

На атоме это работало, но на Espressoэто не так.Даже если он добавляет файлы, значок не меняется.Если я попытаюсь изменить его с помощью liteIcon, это сработает, поэтому в моем коде что-то не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...