Last updated on 21 September 2019

Posted by YesDay on 19 May 2019 Tags: system linux sysadmin devops macos bash groovy ansible shell ydsu

YesDay System Utilities (ydsu), pronounced i’dsʊ, is a package manager for your shell scripts. Primarily targeted for use by Developers, SysAdmins, Power Users, DevOps and Operations Engineers, ydsu is designed to encourage modification of the shell scripts in an IDE-friendly way. Shell scripts of relevant functionality are grouped together into modules and are managed by the management scripts provided by ydsu. Modules can be either external, developed by a third party, or your own. You specify the list of modules you want to use inside the module.yml file. Your local configuration of modules inside the module.yml is called a distribution. Refer to the project’s GitHub repository for information on how to get started.

Advantages

  • Lightweight - Only requires git, ansible and groovy to be present on your system. Even works with ZSH too.

  • Multi-platform - Runs on any UNIX based platforms: Mac OSX, Linux, Cygwin, Solaris and FreeBSD.

  • Modular and easy to extend - You can create modules for your own individual needs and/or make them available to the public. Even ydsu itself is implemented as a set of two (internal) modules: manage and util. More so, if you write your modules in a JVM language, you can take advantage of the internal module util.

  • Polyglot - Write your modules in any programming language: Groovy, Bash, Kotlin, Java, Python, Go, Ruby, Node.js, you name it. Ydsu will manage them in the same way.

  • Distributed - no lock-in - Store your modules in any private or public git repository. Ydsu will take care of the rest. Even ydsu itself can be hosted on and installed from your own private repository. It is designed from the ground up NOT to lock you into any specific repository.

  • Can operate in any network or even air-gaped environment - Ydsu can be used in internet/intranet/LAN or even air-gaped environments. No matter what environment you are in, you can take full advantage of the features.

  • Lines of Code (LOC) and Code Quality - Well written, clean and high quality codebase: 1390 lines of groovy code, 146 lines of bash code, 31% comments, 21 groovy files, 2 bash files, 66 lines per file on average.