61 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from shlex import quote
 | 
						|
 | 
						|
users = {
 | 
						|
    'gollum': {
 | 
						|
        'home': '/var/lib/gollum',
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
directories = {
 | 
						|
    '/opt/gollum': {
 | 
						|
        'owner': 'gollum',
 | 
						|
    },
 | 
						|
    '/opt/gollum/.bundle': {
 | 
						|
        'owner': 'gollum',
 | 
						|
    },
 | 
						|
    '/var/lib/gollum': {
 | 
						|
        'owner': 'gollum',
 | 
						|
    },
 | 
						|
}
 | 
						|
 | 
						|
files = {
 | 
						|
    '/opt/gollum/.bundle/config': {
 | 
						|
        'content': 'BUNDLE_PATH: ".bundle/gems"',
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
git_deploy = {
 | 
						|
    '/opt/gollum': {
 | 
						|
        'repo': 'https://github.com/gollum/gollum.git',
 | 
						|
        'rev': f"v{node.metadata.get('gollum/version')}",
 | 
						|
    },
 | 
						|
    '/var/lib/gollum': {
 | 
						|
        'repo': node.metadata.get('gollum/wiki'),
 | 
						|
        'rev': 'main',
 | 
						|
        'unless': 'test -e /var/lib/gollum/.git',
 | 
						|
    },
 | 
						|
}
 | 
						|
 | 
						|
def run(cmd):
 | 
						|
    return f"su gollum -c " + quote(f"cd /opt/gollum && {cmd}")
 | 
						|
 | 
						|
actions = {
 | 
						|
    'gollum_install_bundler': {
 | 
						|
        'command': run("gem install bundler --user"),
 | 
						|
        'unless': run("test -e $(ruby -e 'puts Gem.user_dir')/bin/bundle"),
 | 
						|
        'needs': [
 | 
						|
            'file:/opt/gollum/.bundle/config',
 | 
						|
        ],
 | 
						|
    },
 | 
						|
    'gollum_bundle_install': {
 | 
						|
        'command': run("$(ruby -e 'puts Gem.user_dir')/bin/bundle install"),
 | 
						|
        'unless': run("$(ruby -e 'puts Gem.user_dir')/bin/bundle check"),
 | 
						|
        'needs': [
 | 
						|
            'git_deploy:/opt/gollum',
 | 
						|
            'action:gollum_install_bundler',
 | 
						|
        ],
 | 
						|
    },
 | 
						|
}
 | 
						|
 | 
						|
# TODO: AUTH
 | 
						|
#https://github.com/bjoernalbers/gollum-auth
 |