Skip to content

CDSRV/runtime

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Apr 14, 2023
7a9da18 · Apr 14, 2023

History

88 Commits
Apr 14, 2023
Apr 12, 2023
Feb 3, 2022
Apr 12, 2023
Feb 3, 2022
Feb 3, 2022
Feb 3, 2022
Dec 9, 2019
Feb 3, 2022
Apr 12, 2023

Repository files navigation

RUNTIME

  • runtime toolkit

PURPOSE

  • configure a shell environment
  • setup or validate runtime toolkits
  • developer productivity & convenience

GOALS

  • reusable solutions to common problems
  • modular design for simple expansion & concise version control
  • idempotent results in shell and file system
  • decouple intent from complex syntax
  • less typing, more functionality

QUICK-START

bash # tested on linux only
git clone https://github.com/CDSRV/runtime.git
cd runtime
# source the setup for the current shell
. ./bin/setup/bash 
# source or run setup for other frameworks
#
# use the 'workspace' function to define the current directory as $WORKSPACE
workspace
# use the 'status' function to output important details of the current environment
status

FEATURE SUMMARY

common idioms of version control systems

- extensible for use with any VCS

- set default options

- actions based on context

bin/$ACTION
  • add: wrapper over $VCS.add - stage files for commit
  • branch: : creates new, or switches as needed
    • .[delete|empty|list] : easy
  • clean: removes ALL untracked, including ignored
  • clone: bulk clone from list of repos into workspace catalog
  • commit: wrapper over $VCS.commit - update repo
  • dif: wrapper over $VCS.diff - shows changes
  • log: wrapper over $VCS.log - shows history
  • pull: wrapper over $VCS.pull - update from remote
  • push: wrapper over $VCS.push - update to remote
  • remove: wrapper over $VCS.rm - remove from filesystem AND cache
  • rev : output current revision hash value
  • revert: wrapper over $VCS.revert - hard reset repo
  • status:
    • output relevant environment variables
    • wrapper over $VCS.status

streamline container development

  • docker.[build|login|rm|run]
    • generate dockerfile using project & workspace context
    • modular option specification
    • bind mount workspace as workdir, read-only or read-write

time-data field generation

  • today: sort-friendly ISO-8601 date ( YYYY-MM-DD )
  • now: Hour-Minute-Second

basic secret generation

storage utilization metrics

  • df.[shm|tmp|xfs]: returns free space metric values ONLY

utilize common frameworks

bin/setup/$FRAMEWORK
  • runtime/install: updates .bashrc - optional
  • bash:
    • checks for compatible shell
    • loads all functions, aliases and workspace defined environment variables into the current shell
  • c: basic gcc requirements
  • git: basic git requirements
  • git-repo: vs https://source.android.com/setup/develop#installing-repo
  • golang:
    • supply any version as $1
    • installs into $WORKSPACE
    • defines GO variables
  • helm:
    • fixed from upstream to not require sudo or nosudo option
  • python:
    • uses apt or yum package manager
    • supply major version as $1
    • complete pip setup for both PY2 and PY3
    • defines PY variables
  • spack: from https://spack.io/
    • installs into $WORKSPACE

DEFINES:

WORKSPACE

  • root context for all other operations

PROJECT

  • basename of repo

VERSION

  • branch and revision

NAME

  • concatenated project, branch and version details

REFERENCES

About

shell setup for runtime environments

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published