def index_home_page(index_name): packages_json = path.join(flask.current_app.app_repo_config.packages_directory, index_name, 'index', 'packages.json') data = decode(read_file(packages_json)) host_url = flask.request.host_url.rstrip('/') setup_url = '%s%s' % (host_url, flask.url_for("client_setup_script", index_name=index_name)) return flask.Response(flask.render_template("home.html", packages=data, setup_url=setup_url, host_url=host_url, index_name=index_name))
def delete_old_packages(config, index, dry_run, quiet): from infi.app_repo.utils import pretty_print, decode, read_file, path packages_json = path.join(config.packages_directory, index, 'index', 'packages.json') data = decode(read_file(packages_json)) for package in data: latest_version = package.get('latest_version', None) if not latest_version: continue def should_delete(filepath): """returns True on old releases of the package""" basename = path.basename(filepath) if not basename.startswith(package['name']): return False prefix = '{}-{}-'.format(package['name'], latest_version) return not basename.startswith(prefix) delete_packages(config, should_delete, index, None, dry_run, quiet)
def delete_old_packages(config, index, dry_run, quiet, days=7): from infi.app_repo.utils import decode, read_file, path, get_last_modified packages_json = path.join(config.packages_directory, index, 'index', 'packages.json') data = decode(read_file(packages_json)) for package in data: latest_version = package.get('latest_version', None) if not latest_version: continue def not_recent(filepath): from datetime import datetime, timedelta return datetime.now() - timedelta(days=days) > get_last_modified(filepath) def should_delete(filepath): """returns True on old releases of the package""" basename = path.basename(filepath) if not basename.startswith(package['name']): return False prefix = '{}-{}-'.format(package['name'], latest_version) return not basename.startswith(prefix) and not_recent(filepath) delete_packages(config, should_delete, index, None, dry_run, quiet)
def show_packages(config, index_name): from infi.app_repo.utils import pretty_print, decode, read_file, path packages_json = path.join(config.packages_directory, index_name, 'index', 'packages.json') data = decode(read_file(packages_json)) pretty_print(data)