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
 | 
