Skip to content
This repository has been archived by the owner on Feb 8, 2023. It is now read-only.

80 Advanced

Francois Levaux-Tiffreau edited this page Dec 28, 2017 · 4 revisions

Advanced

SoftwareArray

When SplashBuddy launches, /Library/Preferences/io.fti.SplasbBuddy.plist is read and the Software items are built in SoftwareArray and tagged as displayToUser.

                            ┌────────────────────┐
                            │                    │
                            │ /var/log/jamf.log  │
                            │                    │
                            │                    │
                            └────────────────────┘
                                       │          
                                       │          
                                  Continuous      
                                       │          
                                       ▼          
                            ┌────────────────────┐
                            │                    │
                            │   SoftwareArray    │
                            │                    │
                            │                    │
                            └────────────────────┘
                                       ▲          
                                       │          
                                       │          
                                       │          
                                   At start       
                                       │          
                                       │          
                            ┌────────────────────┐
                            │                    │
                            │/L/P/io.fti.SplashBu│
                            │     ddy.plist      │
                            │                    │
                            └────────────────────┘

Then SplashBuddy starts parsing /var/log/jamf.log and either updates or creates the Software items in SoftwareArray.

SoftwareArray is continuously evaluated and the following notifications are set:

  • CanContinue
  • DoneInstalling
  • AllSuccess
  • ErrorWhileInstalling
  • Processing
                                                                            
                                                                            
                                                                            
  ┌─────────────┐                                                           
  │             │                                                           
  │    plist    │       ┌────────────────────────┐   ┌────────────────────┐ 
  │             │       │      All Software      │   │                    │▒
  └─────────────┘   ┌──▶│ [canContinue == false] │──▶│    CanContinue     │▒
         │          │   │ successfully installed │   │                    │▒
         ▼          │   └────────────────────────┘   └────────────────────┘▒
  ┌─────────────┐   │                                 ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  │             │   │                                                       
  │SoftwareArray│───┴───────────────────────┐                               
  │             │                           ▼                               
  └─────────────┘                           Λ                               
         ▲                                 ╱ ╲                              
         │                                ╱   ╲                             
  ┌─────────────┐              ┌─────────▕ OR  ▏────────────┐               
  │             │              │          ╲   ╱             │               
  │  jamf.log   │              │           ╲ ╱              │               
  │             │              │            V               │               
  └─────────────┘              ▼                            ▼               
                    ┌────────────────────┐     ┌────────────────────────┐   
                    │                    │▒    │All Software from plist │   
                    │     Processing     │▒    │installed (successfully │   
                    │                    │▒    │        or not)         │   
                    └────────────────────┘▒    └────────────────────────┘   
                     ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒                 │               
                                                            │               
                              ┌─────────────────────────────┤               
                              │                             │               
                              │                             │               
                              ▼                             │               
                              Λ                             ▼               
                             ╱ ╲                 ┌────────────────────┐     
                            ╱   ╲                │                    │▒    
               ┌───────────▕ OR  ▏─────────┐     │   DoneInstalling   │▒    
               │            ╲   ╱          │     │                    │▒    
               │             ╲ ╱           │     └────────────────────┘▒    
               │              V            │      ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒    
               │                           │                                
               │                           │                                
               │                           │                                
               ▼                           ▼                                
  ┌────────────────────────┐  ┌────────────────────────┐                    
  │  One or more software  │  │   All Software from    │                    
  │   failed to install    │  │ jamf.log successfully  │                    
  │                        │  │       installed        │                    
  └────────────────────────┘  └────────────────────────┘                    
               │                           │                                
               ▼                           ▼                                
    ┌────────────────────┐      ┌────────────────────┐                      
    │                    │▒     │                    │▒                     
    │ErrorWhileInstalling│▒     │     AllSuccess     │▒                     
    │                    │▒     │                    │▒                     
    └────────────────────┘▒     └────────────────────┘▒                     
     ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒      ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒                     

These notifications are caught by the GUI and actions are performed:

Clone this wiki locally