/spacewalk-tmux

Tmuxinated setup for SUSE Manager development

Primary LanguageRubyMIT LicenseMIT

Tmuxinated setup for SUSE Manager development

Demo in action

Introduction

This automated setup creates a tmux environment suitable for developing SUSE Manager (or spacewalk). Upon launching, you will be prompted with a tmux session that comprises:

  • A sumaform configuration editor and prompt to provision it
  • A Java remote deployment (press Enter to deploy)
  • A front-end static-resources automated deployer (with gulp and lsyncd)
  • A JUnit test runner (press Enter to launch tests) with configuration editor
  • A Checkstyle runner (press Enter to checkstyle)
  • A tig client to access SCM
  • A SSH window inside the development server with a split window tailed on logs

Dependencies

  • sumaform
  • SUSE Manager or spacewalk sources
  • ruby
  • tmux
  • lsyncd
  • nodejs
  • tig
  • tmuxinator
  • gulp

Dependencies: copy and paste

If you are running OpenSUSE, you can install all dependencies with:

$ git clone git@github.com:moio/sumaform.git
$ git clone git@github.com:SUSE/spacewalk.git
$ sudo zypper in ruby tmux lsyncd nodejs tig
$ sudo gem install tmuxinator
$ sudo npm install -g gulp

Usage: human version

  1. Clone the project:
$ git clone git@github.com:mbologna/spacewalk-tmux.git && cd spacewalk-tmux
  1. Create a symlink somewhere in your PATH (personal preference: ~/bin):
$ ln -s `pwd`/spacewalk-tmux ~/bin/spacewalk-tmux
  1. Edit the following variables in ~/bin/spacewalk-tmux adjusting the self-explanatory values accordingly:
SUMA_SERVER_HOST = 'suma31pg.tf.local'
SUMAFORM_PATH = '/home/mbologna/Development/sumaform'
SPACEWALK_PATH = '/home/mbologna/Development/spacewalk'
SPACEWALK_TMUXINATOR_CONFIG_PATH = '/home/mbologna/.tmuxinator'
LSYNC_CONFIG_PATH = '/home/mbologna'
  1. Launch tmux via $ spacewalk-tmux
  2. Happy coding!

Usage: TL;DR (robot) version

  1. Clone sumaform and SUSE Manager (or spacewalk).
  2. Install spacewalk-tmux:
$ git clone git@github.com:mbologna/spacewalk-tmux.git && cd spacewalk-tmux
$ ln -s `pwd`/spacewalk-tmux ~/bin/spacewalk-tmux
$ vim ~/bin/spacewalk-tmux # change values
$ spacewalk-tmux

Contributing

  1. Think of your setup: is there anything missing in spacewalk-tmux?
  2. Fork the project
  3. Create your feature branch (git checkout -b my-new-feature)
  4. Commit your changes (git commit -am 'Add some feature')
  5. Push to the branch (git push origin my-new-feature)
  6. Create new Pull Request