daniel-s
7/7/2016 - 6:31 PM

Extract web2py '<app_name>.w2p' application into 'applications/<app_name>/‘ folder.

Extract web2py '<app_name>.w2p' application into 'applications/<app_name>/‘ folder.

# -*- coding: utf-8 -*-

import os, sys, tarfile
import re

def extract(tar_url, extract_path='.'):
    print tar_url
    tar = tarfile.open(tar_url, 'r')
    for item in tar:
        tar.extract(item, extract_path)
        if item.name.find(".w2p") != -1 or item.name.find(".tar") != -1:
            extract(item.name, "./" + item.name[:item.name.rfind('/')])

try:
    files = [f for f in os.listdir('.') if os.path.isfile(f)]
    for f in files:
        print f
        if re.search(r'^web2py[.]app[.]([a-zA-Z0-9_ ]*)[.]w2p$', f):
            print 'Extracting ', f
            dest = re.search(r'^web2py[.]app[.]([a-zA-Z0-9_ ]*)[.]w2p$', f).group(1)
            extract(f, extract_path='applications/' + dest)
            print 'Done.'
except:
    name = os.path.basename(sys.argv[0])
    print name[:name.rfind('.')], '<filename>'