Blog

Article Tags

Hua Error Status Codes

By William Jeffrey Rankin, Thu Sep 19 2024

As of revision 157 (released Sep 18, 2024) Hua outputs specific codes based upon error condition. Normally, if all goes well, Hua exits with a status of 0. But when an error condition results, Hua outputs a message and, depending upon the severity of the error, either continues processing content or stops entirely. When the latter occurs, a non-zero exit status is generated. It can be output as seen in the examples below.

PowerShell Session

jeffr@CALLISTO: D:\Documents\wjr-blog $ ..\Hua\hua.ps1 .\wrong.cfg
Config file error. Config file path specified as .\wrong.cfg . Quitting.
jeffr@CALLISTO: D:\Documents\wjr-blog $ $LASTEXITCODE
2

Bash Session

jeffr@Phobos: ~/Hua $ pwsh ./hua.ps1 hua.cfg 
Meta info file error. Meta file path set as .\met.csv. Quitting.
jeffr@Phobos: ~/Hua $ echo $?
9

This is useful in instances where Hua is invoked from a script or as part of a toolchain and exit status needs to be introspected. For more information, refer to the Errors section of the main Hua page.

Related Articles

    Article Tags

    Data File Generator for aa (astronomical almanac)

    By William Jeffrey Rankin, Sat Aug 31 2024

    I've added a bash script (gen-planets.sh) to the planet-rs package that generates data files for aa (Stephen L. Moshier's astronomical almanac). It currently outputs files for the Sun, Venus, Mars, Jupiter, and Saturn, but the planets variable can be modified to include any object from the catalog.

    planet-rs.tar.gz, 5.8K

    Related Articles

        Article Tags

        Minimal Mutt Config Files

        By William Jeffrey Rankin, Sat July 13 2024

        My minimal Mutt configuration files for iCloud Mail and Gmail. Both require two-factor authentication, and app-specific passwords be generated. Notes: <username> refers to the email address prefix. editor can be any editor you choose but should, of course, be Vim.

        iCloud Mail

        set imap_user = '<username>'
        set imap_pass = '<app-specific password>'
        
        set smtp_pass = '<app-specific password>'
        set smtp_url  = 'smtp://<icloud email address>@smtp.mail.me.com:587/'
        
        set from      = '<icloud email address>'
        set realname  = '<full name>'
        set editor    = 'vim'
        
        set folder    = "imaps://$imap_user:$imap_pass@imap.mail.me.com:993/"
        set spoolfile = '+INBOX'
        set postponed = '+Drafts'
        set record    = '+Sent Messages'
        set trash     = '+Deleted Messages'
        set mbox      = '+Archive'
        
        set ssl_starttls = yes
        set ssl_force_tls = yes
        

        Gmail

        set imap_user = '<gmail address>'
        set imap_pass = '<app-specific password>'
        
        set smtp_pass = '<app-specific password>'
        set smtp_url  = 'smtps://<username>@smtp.gmail.com'
        
        set from      = '<gmail email address>'
        set realname  = '<full name>'
        set editor    = 'vim'
        
        set folder    = 'imaps://imap.gmail.com/'
        set spoolfile = '+INBOX'
        set trash     = '+[Gmail]/Trash'
        set postponed = '+[Gmail]/Drafts'
        set record    = '+[Gmail]/Sent Mail'
        
        set ssl_starttls = yes
        set ssl_force_tls = yes
        

            Article Tags

            Hua Paging Labels

            By William Jeffrey Rankin, Thu July 4 2024

            Hua now supports custom labels for paging. Labels are specified in the Hua configuration file:

            next_label = Next&nbsp;Page
            prev_label = Previous&nbsp;Page
            

            Note: Spaces in labels are represented by &nbsp;.

            Related Articles

                Article Tags

                Halloween Countdown Script

                By William Jeffrey Rankin, Fri June 28 2024

                A little diversion: a Halloween countdown script written in PowerShell (and Rexx).

                Usage and Sample Output

                jeffr@Europa: ~/Halloween $ powershell ./halloween.ps1
                There are only 125 days until Halloween! This year, it falls on a Thursday.
                

                The Code

                # halloween - Display the number of days until Halloween and the day on which it falls
                
                # $Author: jeffr $
                # $Date: 2024-11-01 10:34:32 -0400 (Fri, 01 Nov 2024) $
                # $Revision: 9 $
                
                $c_date = Get-Date -Format 'MM/dd/yyyy'
                $c_year = ($c_date.Split('/'))[2]
                $c_month = ($c_date.Split('/'))[0]
                if ($c_month -ge 11) { $c_year = [int]$c_year + 1 }
                $h_date = "10/31/$c_year"
                
                $days   = (((New-TimeSpan -Start $c_date -End $h_date).ToString()).Split('.'))[0]
                $day    = (Get-Date $h_date).DayOfWeek
                $day_l = 'days'
                $are_is = 'are'
                
                if ($days -eq 1) {
                    $day_l = 'day'
                    $are_is = 'is'
                }
                
                if ($days -eq '00:00:00') {
                    Write-Host 'TODAY is Halloween!'
                } else {
                    Write-Host "There $are_is only $days $day_l until Halloween! This year, it falls on a $day."
                }
                

                The Same in Rexx

                /* halloween - Display the number of days until Halloween and the day on which it falls
                
                $Author: jeffr $
                $Date: 2024-11-02 08:20:36 -0400 (Sat, 02 Nov 2024) $
                $Revision: 10 $
                */
                
                c_date = DATE('B')
                parse value DATE('N', c_date, 'B') with dom ' ' month ' ' year
                if month = 'Nov' | month = 'Dec' then year = year + 1
                h = '31 Oct' year
                h_date = DATE('B', h)
                
                days = h_date - c_date
                day = DATE('W', h, 'N')
                day_l = 'days'
                are_is = 'are'
                
                if days = 1 then do
                    day_l = 'day'
                    are_is = 'is'
                end
                
                if days = 0 then
                    say 'TODAY is Halloween!'
                else
                    say 'There' are_is 'only' days day_l 'until Halloween! This year, it falls on a' day'.'
                

                    Newer Articles Older Articles