Skip to content

ocf/utils

Repository files navigation

utils

Build Status

utils is a repository of scripts used by the Open Computing Facility at the University of California, Berkeley.

What belongs here

Scripts for humans do

In general, scripts which might be executed by a person should go here. System scripts (things that go primarily in cronjobs or similar) should go in the ocf/puppet repo instead.

Scripts of all languages are welcome, and should be organized into appropriate directories. Use staff/ for anything that will typically only be executed by staff.

Libraries don't

If your utility is meant to be imported, it should probably go in ocflib instead. If you're writing a script whose functionality might be useful elsewhere, separate that out, put it in ocflib, and call it from a binary in this repo.

General best practices

All languages

  • Executable files should be marked executable, contain a proper shebang, and generally not have a file extension.

Python

  • Use ocflib functionality when it exists, and put reusable code there (and call it from an executable here).
  • When possible, target Python 3.5 and 3.7 (same versions as ocflib)
  • Generally follow PEP8.

Shell/Bash

  • Use /bin/bash over /bin/sh unless your script is for some alien environment where there is no bash. Don't be afraid to use bashisms.
  • Typically add set -euo pipefail, especially for any complicated scripts. This (a) stops on errors, (b) errors on accessing undefined variables, and (c) errors on failures in the middle of a pipeline. Together these make Bash into something resembling a passable programming language.
  • Quote things and otherwise follow best practices.

Other languages

  • Consider writing in Python instead.

About

User and staff utilities for the Open Computing Facility

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 34

Languages