Projects

Here are projects that I actively work on. All of them are POSIX shell scripting related.

They are:

  • beadm(8) – manage ZFS Boot Environments on FreeBSD
  • automount(8) – mount removable media on FreeBSD
  • lsblk(8) – list block devices on FreeBSD

Below is detailed information about these projects.

beadm(8)

      ___                     ___          __ ____ __
     /  /                    /  /         / //    \\ \
    /  /   ____   ____   ___/  /___ ___  / //  /  / \ \
   /    \ /  _ \ /    \ /     //   \   \/ / \     \ / /
  /  /  //  ___//  /  //  /  //  /  /  /\ \ /  /  // /
  \____/ \____/ \_____\\____//__/__/__/  \_\\____//_/

I started the beadm(8) in 2012 and its developed/supported today. In the meantime the FreeBSD project created its own tool called bectl(8) that aims to implement beadm(8) in the C language.

The beadm(8) source is available on GitHub here:
https://github.com/vermaden/beadm

My presentations about ZFS Boot Environments and beadm(8) are available here:

The beadm(8) in action.
PROJECTS.beadm

automount(8)

                     ___        /\                                ___
                  __/  /_      /  \                              _\  \__
     ____   _____/_   __/__   /  _/\   ___ ___   ____ ______   __\__   _\
    /    \ /  /  //  //    \ /\_/   \ /   /   \ /    \\  \  \ /    \\  \
   /  /  //  /  //  //  /  //        \\  \  \  \\  \  \\  \  \\  \  \\  \_
   \_____\\____/ \__\\____//__________\\__\__\__\\____/ \_____\\__\__\\___\

The automount(8) was started in 2013 and lives still today. Its used as chosen automounting solution in the GhostBSD distribution. The automount(8) uses FreeBSD’s devd(8) events for the mount/unmount actions. It currently supports most popular file systems such as:

  • NTFS
  • MSDOS
  • exFAT
  • EXT2
  • EXT3
  • EXT4
  • UFS
  • XFS
  • HFS
  • MTP
  • ISO9660

The automount(8) source is available on GitHub here:
https://github.com/vermaden/automount

More information and comparison to other automount solutions on FreeBSD is available here:

The automount(8) in action.
PROJECTS.automount

lsblk(8)

  ___     ___   ___ __       _ _ _____    
  \  \  __\__\__\  \  \  __ / / /     \   
   \  \/  __/    \  \  \/ // / /   .   \  
    \  \___ \  \  \  \_   \\ \ \    \  / 
     \___\__/\____/\___\/\_\\_\_\____\/  

The lsblk(8) was started as proof of concept in 2016 but finally in 2019 I got back to it and made it usable/production ready.

The lsblk(8) source is available on GitHub here:
https://github.com/vermaden/lsblk

I also made dedicated article about lsblk(8) here:

The lsblk(8) in action.
PROJECTS.lsblk

Scripts

Various scripts I have written across the years.
They are available on GitHub here:
https://github.com/vermaden/scripts

EOF