FM and AppleScript using CUPS (lp...) to get name of default printer

Discussion created by bertrand on Mar 12, 2017
Latest reply on Mar 13, 2017 by bertrand



I've found some years ago a way to get printers list and change the default printer at FMSource in French, some scripts written by Clem.


Now theese scripts don't work and I can guess what is the good way to do the same.


I want to get in field z_MAC_SETTINGSGR::MAC_Printer_default the name of the default printer.

With Terminal I can excecute : lpstat -d | awk 'BEGIN {FS=": "}{print $2}'

which give : Deskjet_F4580


In my script I do this : AppleScript Execute ( value : "set data of cell "z_MAC_SETTINGSGR::MAC_Printer_default"  to do shell script "lpstat -d | awk 'BEGIN {FS=\": \"}{print $2}'""

wich give : set data of cell "z_MAC_SETTINGSGR::MAC_Printer_default"  to do shell script "lpstat -d | awk 'BEGIN {FS=\": \"}{print $2}'"


I get a crash report :


Process:               FileMaker Pro [90732]

Path:                  /Applications/FileMaker Pro 15 Advanced/FileMaker Pro Advanced Pro

Identifier:            FileMaker Pro

Version:               15.0.3 (15.0.3)

Code Type:             X86-64 (Native)

Parent Process:        FileMaker Pro [67667]

Responsible:           FileMaker Pro [90732]

User ID:               502


Date/Time:             2017-03-12 09:31:04.706 +0100

OS Version:            Mac OS X 10.12.4 (16E183b)

Report Version:        12

Anonymous UUID:        1BA161D3-CCFD-AD3E-E26D-3DFDE26C71F3


Sleep/Wake UUID:       05DA7BA2-F3D8-4745-9410-0A7D87B152F6


Time Awake Since Boot: 290000 seconds

Time Since Wake:       140000 seconds


System Integrity Protection: disabled


Crashed Thread:        0  Dispatch queue:


Exception Type:        EXC_BAD_INSTRUCTION (SIGILL)

Exception Codes:       0x0000000000000001, 0x0000000000000000

Exception Note:        EXC_CORPSE_NOTIFY


Termination Signal:    Illegal instruction: 4

Termination Reason:    Namespace SIGNAL, Code 0x4

Terminating Process:   exc handler [0]


Application Specific Information:

BUG IN CLIENT OF LIBPLATFORM: Trying to recursively lock an os_unfair_lock


Thread 0 Crashed:: Dispatch queue:

0   libsystem_platform.dylib       0x0000000106be9ae4 _os_unfair_lock_recursive_abort + 23

1   libsystem_platform.dylib       0x0000000106be9405 _os_unfair_lock_lock_slow + 181

2   libobjc.A.dylib               0x00007fff8f6c8680 _object_remove_assocations + 74




and and unknown error 1004 when using this command, I say Ok to crash report and my script continue running.


Thanks for your help.