Una herramienta de línea de comandos flexible para implementar instantáneamente interfaces de usuario para comandos y scripts simples.
La maleta es una herramienta de línea de comandos que se puede "programar" para mostrar una interfaz Swiftui que puede activar comandos y scripts.
? Descarga directa de maleta
Es similar a los atajos, pero para macOS y conducido por la línea de comando.

Debido a su maleta Swiftui, la maleta es un ciudadano de MAC de primera clase. Con soporte fuera de la caja para el modo oscuro, Menubars y arrastrar y soltar.
Su poder y flexibilidad vienen de la línea de comandos UNIX probada y confiable. Cualquier cosa que pueda hacer en la terminal que pueda hacer en la maleta, pero con una interfaz de usuario y exporte el comando como un archivo .command , para registrarse con un proyecto o compartir con el mundo.
OVERVIEW: A flexible command line tool for instantly deploying user interfaces
for simple commands and scripts.
USAGE: Suitcase <subcommand>
OPTIONS:
--version Show the version.
-h, --help Show help information.
SUBCOMMANDS:
basic Launch a basic Suitcase process, that has a main menu
and an icon in the Dock when running.
utility Launch a utility Suitcase process, without a Dock
icon or main menu.
basic Un proceso basic de maleta tiene un menú principal y un ícono en el muelle al ejecutar.
Ver la documentación completa.
Un proceso de maleta utility no tiene un icono de muelle o un menú principal. Consiste en solo una ventana principal.
Ver la documentación completa.
Estos ejemplos son muy básicos, pero deberían darle una buena idea de cómo puede usar la maleta. Se pueden encontrar más ejemplos de detalles en el bazar. Si tiene alguna pregunta, cree un problema. Si crea un comando y le gustaría compartirlo, abra un PR en el bazar.

Un ejemplo simple que consta de un botón que cuando se hace clic llama llama al comando say . Mira el video de este ejemplo en acción, hay un say detallado en el bazar de maleta.
$ Suitcase --name= " Demo App " --window-title= " Hello World "
--window-width= " 200 " --window-height= " 200 "
--control-type= " label " --control-title= " Give a face to every voice… "
--control-type= " button "
--control-title= " ? Say hello "
--control-action= " /usr/bin/say Hello World " 
Un ejemplo más avanzado usando botones y parámetros de paso al comando say . Se puede encontrar una explicación detallada de los juegos de guerra en el bazar de la maleta.
$ Suitcase --name= " War Games "
--control-title= " Shall we play a game? "
--control-type= " text-field "
--control-identifier= " say.textfield "
--control-title= " Daniel "
--control-type= " button "
--control-group-identifier= " g.btns "
--control-action= " /usr/bin/say "
--control-action-parameter= " -v,Daniel,say.textfield "
--control-title= " Samantha "
--control-type= " button "
--control-group-identifier= " g.btns "
--control-action= " /usr/bin/say "
--control-action-parameter= " -v,Samantha,say.textfield "
--control-title= " Veena "
--control-type= " button "
--control-group-identifier= " g.btns "
--control-action= " /usr/bin/say "
--control-action-parameter= " -v,Veena,say.textfield " 
Este ejemplo muestra cómo crear menús y submenus. Las acciones se pueden adjuntar a cualquier elemento de menú de la misma manera que button S. Mira el video de este ejemplo en acción.
Los elementos del menú también se les puede asignar un atajo de teclado. Vea la documentación completa para obtener más detalles.
$ Suitcase --name= " Demo App " --window-title= " Menus "
--control-title= " UUID "
--control-type= " label " --control-identifier= " com.label.uuid "
--menu-title= " Action>Generate>UUID "
--menu-action= " /usr/bin/uuidgen "
--menu-action-destination= " com.label.uuid "
--menu-title= " Action>Copy UUID "
--menu-shortcut= " k "
--menu-action= " /usr/bin/printenv com.label.uuid | /usr/bin/pbcopy " 
Este es un ejemplo más involucrado que utiliza defaults para leer el sistema MACOS User Valor y usar sed para establecer una label de estado. Mira el video de este ejemplo en acción.
$ Suitcase --name= " Hidden Finder Settings "
--control-title= " Hidden Files & Folders: "
--control-group-identifier= " com.finder.hidden "
--control-type= " label "
--control-title= " unknown "
--control-group-identifier= " com.finder.hidden "
--control-type= " label "
--control-identifier= " com.label.hidden.state "
--control-title= " Refresh "
--control-group-identifier= " com.finder.hidden "
--control-type= " button "
--control-action= " /usr/bin/defaults read com.apple.finder AppleShowAllFiles | /usr/bin/sed s/1/Visible/g;s/0/Hidden/g "
--control-action-destination= " com.label.hidden.state "
--control-title= " Enable "
--control-type= " button "
--control-group-identifier= " com.finder.hidden.buttons "
--control-action= " /usr/bin/defaults write com.apple.finder AppleShowAllFiles -bool TRUE & /usr/bin/killall Finder "
--control-title= " Disable "
--control-type= " button "
--control-group-identifier= " com.finder.hidden.buttons "
--control-action= " /usr/bin/defaults write com.apple.finder AppleShowAllFiles -bool FALSE & /usr/bin/killall Finder "Así es como se ejecutaría el comando en la terminal.
$ defaults read com.apple.finder AppleShowAllFiles | sed ' s/1/Visible/g;s/0/Hidden/g ' El botón usa & ejecutar dos comandos, uno para escribir a los valores predeterminados del usuario y el segundo para relanzar el buscador:
$ defaults write com.apple.finder AppleShowAllFiles -bool TRUEMata al buscador y relanzar:
$ killall Finder.command Cualquier comando de maleta se puede exportar como un archivo .command Puede hacer doble clic en este archivo para iniciar la maleta o compartir el archivo (es solo texto plano).

Por favor cree un problema.
Lanzamientos y noticias (@suitcasecli) Richard Stelling (@rjstelling)