Skip to content
Snippets Groups Projects
Select Git revision
  • c28acd942bdda8d6778d375cdff62539013b784e
  • smartrender+backports-for-buster default
  • buster+ubicast
3 results

gst-plugins-good-plugins-plugin-imagefreeze.html

Blame
  • 0_setup.py 4.20 KiB
    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    import os
    
    import utils
    
    
    def setup(interactive=True):
        dir_path = utils.get_dir(__file__)
        pwd_path = '/etc/pure-ftpd/pureftpd.passwd'
        # Get passwords
        ftpincoming = utils.get_conf('FTP_INCOMING_PWD')
        ftpmsuploader = utils.get_conf('FTP_MSUPLOADER_PWD')
        ftpstorage = utils.get_conf('FTP_STORAGE_PWD')
        ftpadmin = utils.get_conf('FTP_ADMIN_PWD')
        if not ftpincoming or not ftpmsuploader or not ftpstorage or not ftpadmin:
            raise Exception('Some passwords for FTP accounts are missing.\nPlease add them in the configuration file for EnvSetup script.')
        # Run commands
        cmds = [
            'apt-get install --yes pure-ftpd python3-unidecode',
            dict(line='adduser --disabled-login --gecos "" --shell /bin/false ftp', cond='id ftp', cond_neg=True, cond_skip=True),
            'mkdir -p /home/ftp/storage',
            'mkdir -p /home/ftp/storage/incoming',
            'mkdir -p /home/ftp/storage/msuploads',
            'mkdir -p /home/ftp/storage/www',
            'chmod -R 775 /home/ftp/storage/incoming',
            'chmod -R 777 /home/ftp/storage/msuploads',
            'chmod -R 775 /home/ftp/storage/www',
            'chown -R ftp:ftp /home/ftp/storage',
            # Config
            'echo "no" > /etc/pure-ftpd/conf/AllowDotFiles',
            'echo "yes" > /etc/pure-ftpd/conf/CallUploadScript',
            'echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone',
            'echo "yes" > /etc/pure-ftpd/conf/DontResolve',
            'echo "no" > /etc/pure-ftpd/conf/PAMAuthentication',
            # Post upload script
            'cp "%s/on_ftp_upload.py" /home/ftp/on_ftp_upload.py' % dir_path,
            'chown ftp:ftp /home/ftp/on_ftp_upload.py',
            'chmod +x /home/ftp/on_ftp_upload.py',
            'pure-uploadscript -p /home/ftp/.on_upload.pid -B -g $(id -g ftp) -r /home/ftp/on_ftp_upload.py -u $(id -u ftp)',
            'cp "%s/pure-ftpd-common" /etc/default/pure-ftpd-common.tmp' % dir_path,
            'sed "s/UPLOADUID=UID/UPLOADUID=$(id -u ftp)/g" /etc/default/pure-ftpd-common.tmp > /etc/default/pure-ftpd-common.tmp2',
            'mv -f /etc/default/pure-ftpd-common.tmp2 /etc/default/pure-ftpd-common.tmp',
            'sed "s/UPLOADGID=GID/UPLOADGID=$(id -g ftp)/g" /etc/default/pure-ftpd-common.tmp > /etc/default/pure-ftpd-common.tmp2',
            'mv -f /etc/default/pure-ftpd-common.tmp2 /etc/default/pure-ftpd-common',
            'rm -f /etc/default/pure-ftpd-common.tmp',
            'cp "%s/remove_empty_dirs.py" /etc/cron.hourly/remove_empty_dirs.py' % dir_path,
            # Create FTP accounts
            '([ -f "%s" ] || [ -f "%s" ] && cp "%s" "%s") || true' % (pwd_path + '.back', pwd_path, pwd_path, pwd_path + '.back'),
            '([ -f "%s" ] && mv -f "%s" pureftpd.passwd.tmp) || true' % (pwd_path, pwd_path),
            '"%s/create_account.sh" ftpincoming "%s" /home/ftp/storage/incoming' % (dir_path, ftpincoming),
            '"%s/create_account.sh" ftpmsuploader "%s" /home/ftp/storage/msuploads' % (dir_path, ftpmsuploader),
            '"%s/create_account.sh" ftpstorage "%s" /home/ftp/storage/www' % (dir_path, ftpstorage),
            '"%s/create_account.sh" ftpadmin "%s" /home/ftp/storage' % (dir_path, ftpadmin),
            'rm -f pureftpd.passwd.tmp',
            'pure-pw mkdb',
            'ln -sfn /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/50puredb',
            '/etc/init.d/pure-ftpd force-reload',
        ]
        try:
            utils.run_commands(cmds)
        except Exception:
            raise
        finally:
            # Restore password conf if required
            if os.path.exists('pureftpd.passwd.tmp'):
                os.rename('pureftpd.passwd.tmp', pwd_path)
    
        # Web server onfiguration
        server_name = utils.get_conf('FTP_SERVER_NAME') or 'videos'
        cmds = [
            'apt-get remove -y apache2',
            'apt-get install -y nginx',
            'mkdir -p /var/www',
            'ln -sfn /home/ftp/storage/www /var/www/videos',
            'cp %s/crossdomain.xml /home/ftp/storage/www/crossdomain.xml' % dir_path,
            'cp %s/vhost_videos.conf /etc/nginx/sites-available/videos.conf' % dir_path,
            'sed -i "s@server_name videos;@server_name %s;@" "/etc/nginx/sites-available/videos.conf"' % server_name,
            'ln -sfn ../sites-available/videos.conf /etc/nginx/sites-enabled/videos.conf',
        ]
        utils.run_commands(cmds)
        utils.add_hosts_to_localhost([server_name])