Makefile

Summary

Maintainability
Test Coverage
NAME          = rmt-server
VERSION       = $(shell ruby -e 'require "./lib/rmt.rb"; print RMT::VERSION')

all:
    @:

clean:
    rm -f rmt-cli.8*
    rm -rf package/obs/*.tar.bz2
    rm -rf $(NAME)-$(VERSION)/

man:
    ronn --roff --pipe --manual RMT MANUAL.md > rmt-cli.8 && gzip -f rmt-cli.8
    mv rmt-cli.8.gz package/obs

dist: clean man
    @mkdir -p $(NAME)-$(VERSION)/

    @cp -r app $(NAME)-$(VERSION)/
    @mkdir $(NAME)-$(VERSION)/bin
    @cp -r bin/rails bin/rmt-cli $(NAME)-$(VERSION)/bin
    @cp -r bin/rmt-data-import $(NAME)-$(VERSION)/bin
    @cp -r bin/rmt-test-regsharing $(NAME)-$(VERSION)/bin
    @cp -r bin/rmt-manual-instance-verify $(NAME)-$(VERSION)/bin
    @cp -r config $(NAME)-$(VERSION)/
    @cp -r config.ru $(NAME)-$(VERSION)/
    @cp -r db $(NAME)-$(VERSION)/
    @cp -r Gemfile $(NAME)-$(VERSION)/
    @cp -r Gemfile.lock $(NAME)-$(VERSION)/
    @cp -r lib $(NAME)-$(VERSION)/
    @cp -r engines $(NAME)-$(VERSION)/
    @mkdir $(NAME)-$(VERSION)/package
    @cp -r package/files $(NAME)-$(VERSION)/package

    @mkdir $(NAME)-$(VERSION)/log
    @cp -r log/.keep $(NAME)-$(VERSION)/log
    @mkdir $(NAME)-$(VERSION)/tmp
    @cp -r tmp/.keep $(NAME)-$(VERSION)/tmp

    @cp -r Rakefile $(NAME)-$(VERSION)/
    @cp -r README.md $(NAME)-$(VERSION)/
    @cp -r .bundle $(NAME)-$(VERSION)/
    @mkdir $(NAME)-$(VERSION)/vendor
    @mkdir -p $(NAME)-$(VERSION)/public/repo/
    @mkdir -p $(NAME)-$(VERSION)/public/suma/
    @cp -r public/tools $(NAME)-$(VERSION)/public/

    # i18n
    @cp -r locale $(NAME)-$(VERSION)/
    @rm -rf $(NAME)-$(VERSION)/locale/.keep
    @rm -rf $(NAME)-$(VERSION)/locale/*/rmt.edit.po
    @rm -rf $(NAME)-$(VERSION)/locale/*/rmt.po.time_stamp

    @rm -rf $(NAME)-$(VERSION)/config/rmt.yml
    @rm -rf $(NAME)-$(VERSION)/config/rmt.local.yml
    @rm -rf $(NAME)-$(VERSION)/config/system_uuid

    # don't package test tasks (fails to load because of rspec dependency)
    @rm -rf $(NAME)-$(VERSION)/lib/tasks/test.rake

    # don't package engine bin directory, specs (no need) and .gitignore (OBS complains)
    @rm -rf $(NAME)-$(VERSION)/engines/*/bin
    @rm -rf $(NAME)-$(VERSION)/engines/*/spec
    @rm -rf $(NAME)-$(VERSION)/engines/*/.gitignore

    # don't package example instance verification provider
    @rm -rf $(NAME)-$(VERSION)/engines/instance_verification/lib/instance_verification/providers/example.rb

    @mv $(NAME)-$(VERSION)/.bundle/config_packaging $(NAME)-$(VERSION)/.bundle/config
    cd $(NAME)-$(VERSION) && bundle package --all
    rm -rf $(NAME)-$(VERSION)/vendor/bundle/

    @mkdir $(NAME)-$(VERSION)/support
    @cp support/rmt $(NAME)-$(VERSION)/support/rmt

    # bundler hacks for ruby2.5
    sed -i '/source .*rubygems\.org/d' $(NAME)-$(VERSION)/Gemfile
    sed -i '/remote: .*rubygems\.org/d' $(NAME)-$(VERSION)/Gemfile.lock

    find $(NAME)-$(VERSION) -name \*~ -exec rm {} \;
    tar cfvj package/obs/$(NAME)-$(VERSION).tar.bz2 $(NAME)-$(VERSION)/
    rm -rf $(NAME)-$(VERSION)/