|  | @@ -1,7 +1,12 @@
 | 
		
	
		
			
			| 1 | 1 |  #! /usr/bin/env python
 | 
		
	
		
			
			| 2 | 2 |  from os import path
 | 
		
	
		
			
			| 3 | 3 |  import os
 | 
		
	
		
			
			|  | 4 | +
 | 
		
	
		
			
			|  | 5 | +import shutil
 | 
		
	
		
			
			|  | 6 | +import subprocess
 | 
		
	
		
			
			|  | 7 | +
 | 
		
	
		
			
			| 4 | 8 |  from setuptools import setup, find_packages
 | 
		
	
		
			
			|  | 9 | +from setuptools.command.install import install
 | 
		
	
		
			
			| 5 | 10 |  
 | 
		
	
		
			
			| 6 | 11 |  install_requires = [
 | 
		
	
		
			
			| 7 | 12 |      'argcomplete'
 | 
		
	
	
		
			
			|  | @@ -10,6 +15,27 @@ install_requires = [
 | 
		
	
		
			
			| 10 | 15 |  here = path.abspath(path.dirname(__file__))
 | 
		
	
		
			
			| 11 | 16 |  
 | 
		
	
		
			
			| 12 | 17 |  
 | 
		
	
		
			
			|  | 18 | +class InstallCommand(install):
 | 
		
	
		
			
			|  | 19 | +    def run(self):
 | 
		
	
		
			
			|  | 20 | +        install.run(self)
 | 
		
	
		
			
			|  | 21 | +        try:
 | 
		
	
		
			
			|  | 22 | +            if path.isdir('/etc/bash_completion.d/'):
 | 
		
	
		
			
			|  | 23 | +                shutil.copy('extra/bash/sitegen', '/etc/bash_completion.d/')
 | 
		
	
		
			
			|  | 24 | +        except Exception as e:
 | 
		
	
		
			
			|  | 25 | +            print(e)
 | 
		
	
		
			
			|  | 26 | +        try:
 | 
		
	
		
			
			|  | 27 | +            if not path.isdir('/etc/sitegen/'):
 | 
		
	
		
			
			|  | 28 | +                shutil.copytree('extra/sitegen/', '/etc/sitegen/')
 | 
		
	
		
			
			|  | 29 | +                os.mkdir('/etc/sitegen/hooks-enabled/')
 | 
		
	
		
			
			|  | 30 | +                for hook_type in ['site', 'cert']:
 | 
		
	
		
			
			|  | 31 | +                    os.mkdir('/etc/sitegen/hooks-enabled/%1s' % hook_type)
 | 
		
	
		
			
			|  | 32 | +                    for file in os.listdir('/etc/sitegen/hooks-available/%1s/' % hook_type):
 | 
		
	
		
			
			|  | 33 | +                        os.symlink('../../hooks-available/%1s/%2s' % (hook_type, file),
 | 
		
	
		
			
			|  | 34 | +                                   '/etc/sitegen/hooks-enabled/%1s/%2s' % (hook_type, file))
 | 
		
	
		
			
			|  | 35 | +        except Exception as e:
 | 
		
	
		
			
			|  | 36 | +            print(e)
 | 
		
	
		
			
			|  | 37 | +
 | 
		
	
		
			
			|  | 38 | +
 | 
		
	
		
			
			| 13 | 39 |  def package_files(directory):
 | 
		
	
		
			
			| 14 | 40 |      paths = []
 | 
		
	
		
			
			| 15 | 41 |      for (path, directories, filenames) in os.walk(directory):
 | 
		
	
	
		
			
			|  | @@ -68,7 +94,7 @@ Also provide a simpler way to request SSL certificate over certbot""",
 | 
		
	
		
			
			| 68 | 94 |      },
 | 
		
	
		
			
			| 69 | 95 |  
 | 
		
	
		
			
			| 70 | 96 |      data_files=[
 | 
		
	
		
			
			| 71 |  | -        ('/etc/bash_completion.d/', ['extra/bash/sitegen']),
 | 
		
	
		
			
			|  | 97 | +        ('share/sitegen/bash_completion.d/', ['extra/bash/sitegen']),
 | 
		
	
		
			
			| 72 | 98 |          ('share/sitegen/', ['extra/apache/sitegen.conf']),
 | 
		
	
		
			
			| 73 | 99 |          ('etc/sitegen/', ['extra/sitegen/sitegen.json']),
 | 
		
	
		
			
			| 74 | 100 |          ('etc/sitegen/hooks-available/cert/', package_files('extra/sitegen/hooks-available/cert/')),
 | 
		
	
	
		
			
			|  | @@ -83,6 +109,6 @@ Also provide a simpler way to request SSL certificate over certbot""",
 | 
		
	
		
			
			| 83 | 109 |      },
 | 
		
	
		
			
			| 84 | 110 |  
 | 
		
	
		
			
			| 85 | 111 |      cmdclass={
 | 
		
	
		
			
			| 86 |  | -        # 'install': PostInstallCommand,
 | 
		
	
		
			
			|  | 112 | +        'install': InstallCommand,
 | 
		
	
		
			
			| 87 | 113 |      }
 | 
		
	
		
			
			| 88 | 114 |  )
 |