def generate(root_dir):
    tmp_dir               = os.path.join(root_dir, 'maven_package')
    tmp_src_main_java_dir = os.path.join(tmp_dir, 'src', 'main', 'java')
    tmp_unzipped_dir      = os.path.join(tmp_dir, 'unzipped')

    # Make directories
    common.recreate_dir(tmp_dir)
    os.makedirs(tmp_src_main_java_dir)

    # Unzip
    version = common.get_changelog_version(root_dir)

    common.execute(['/usr/bin/unzip',
                    '-q',
                    os.path.join(root_dir, 'tinkerforge_java_bindings_{0}_{1}_{2}.zip'.format(*version)),
                    '-d',
                    tmp_unzipped_dir])

    # Copy source
    shutil.copytree(os.path.join(tmp_unzipped_dir, 'source', 'com'),
                    os.path.join(tmp_src_main_java_dir, 'com'))

    # Make pom.xml
    common.specialize_template(os.path.join(root_dir, 'pom.xml.template'),
                               os.path.join(tmp_dir, 'pom.xml'),
                               {'{{VERSION}}': '.'.join(version)})

    # Make package
    with common.ChangedDirectory(tmp_dir):
        common.execute(['/usr/bin/mvn', 'clean', 'verify'])
def generate(root_dir):
    tmp_dir               = os.path.join(root_dir, 'maven_package')
    tmp_src_main_java_dir = os.path.join(tmp_dir, 'src', 'main', 'java')
    tmp_unzipped_dir      = os.path.join(tmp_dir, 'unzipped')

    # Make directories
    common.recreate_dir(tmp_dir)
    os.makedirs(tmp_src_main_java_dir)

    # Unzip
    version = common.get_changelog_version(root_dir)

    common.execute(['unzip',
                    '-q',
                    os.path.join(root_dir, 'tinkerforge_java_bindings_{0}_{1}_{2}.zip'.format(*version)),
                    '-d',
                    tmp_unzipped_dir])

    # Copy source
    shutil.copytree(os.path.join(tmp_unzipped_dir, 'source', 'com'),
                    os.path.join(tmp_src_main_java_dir, 'com'))

    # Make pom.xml
    common.specialize_template(os.path.join(root_dir, 'pom.xml.template'),
                               os.path.join(tmp_dir, 'pom.xml'),
                               {'{{VERSION}}': '.'.join(version)})

    # Make package
    with common.ChangedDirectory(tmp_dir):
        common.execute(['mvn', 'clean', 'verify'])
Exemple #3
0
    def prepare(self):
        if self.get_config_name().space == 'Tinkerforge':
            name = 'comcu'
        else:
            name = 'comcu_' + self.get_config_name().under

        common.recreate_dir(os.path.join(self.get_root_dir(), name))
    def prepare(self):
        common.recreate_dir(self.tmp_dir)

        for flavor in ['matlab', 'octave']:
            os.makedirs(self.tmp_flavor_dir[flavor])
            os.makedirs(self.tmp_flavor_source_dir[flavor])
            os.makedirs(self.tmp_flavor_source_meta_inf_services_dir[flavor])
            os.makedirs(self.tmp_flavor_source_com_tinkerforge_dir[flavor])
            os.makedirs(self.tmp_flavor_examples_dir[flavor])
Exemple #5
0
    def prepare(self):
        common.recreate_dir(self.tmp_dir)

        for flavor in ['matlab', 'octave']:
            os.makedirs(self.tmp_flavor_dir[flavor])
            os.makedirs(self.tmp_flavor_source_dir[flavor])
            os.makedirs(self.tmp_flavor_source_meta_inf_services_dir[flavor])
            os.makedirs(self.tmp_flavor_source_com_tinkerforge_dir[flavor])
            os.makedirs(self.tmp_flavor_examples_dir[flavor])
 def prepare(self):
     common.recreate_dir(self.tmp_dir)
     os.makedirs(self.tmp_nodejs_dir)
     os.makedirs(self.tmp_nodejs_source_dir)
     os.makedirs(self.tmp_nodejs_source_tinkerforge_dir)
     os.makedirs(self.tmp_nodejs_examples_dir)
     os.makedirs(self.tmp_nodejs_package_dir)
     os.makedirs(self.tmp_nodejs_package_lib_dir)
     os.makedirs(self.tmp_browser_source_dir)
     os.makedirs(self.tmp_browser_examples_dir)
def generate(root_dir):
    tmp_dir                     = os.path.join(root_dir, 'cpan_package')
    tmp_unzipped_dir            = os.path.join(tmp_dir, 'unzipped')
    tmp_unzipped_source_dir     = os.path.join(tmp_unzipped_dir, 'source')
    tmp_unzipped_source_lib_dir = os.path.join(tmp_unzipped_source_dir, 'lib')
    tmp_cpan_dir                = os.path.join(tmp_dir, 'cpan')
    tmp_cpan_lib_dir            = os.path.join(tmp_cpan_dir, 'lib')

    # Make directories
    common.recreate_dir(tmp_dir)

    # Unzip
    version = common.get_changelog_version(root_dir)

    common.execute(['unzip',
                    '-q',
                    os.path.join(root_dir, 'tinkerforge_perl_bindings_{0}_{1}_{2}.zip'.format(*version)),
                    '-d',
                    tmp_unzipped_dir])

    # Make CPAN package structure
    modules = ['Tinkerforge']

    for filename in os.listdir(os.path.join(tmp_unzipped_source_lib_dir, 'Tinkerforge')):
        modules.append('Tinkerforge::' + filename.replace('.pm', ''))

    common.execute(['module-starter',
                    '--dir=' + tmp_cpan_dir,
                    '--module=' + ','.join(modules),
                    '--distro=Tinkerforge',
                    '--author="Ishraq Ibne Ashraf"',
                    '[email protected]'])

    # Make README
    common.specialize_template(os.path.join(root_dir, 'README.template'),
                               os.path.join(tmp_cpan_dir, 'README'),
                               {'<<VERSION>>': '.'.join(version)})

    # Make Changes
    shutil.copy(os.path.join(tmp_unzipped_dir, 'changelog.txt'), os.path.join(tmp_cpan_dir, 'Changes'))

    # Copy Makefile.PL
    shutil.copy(os.path.join(tmp_unzipped_source_dir, 'Makefile.PL'), tmp_cpan_dir)

    # Copy source
    shutil.rmtree(tmp_cpan_lib_dir)
    shutil.copytree(os.path.join(tmp_unzipped_source_lib_dir),
                    os.path.join(tmp_cpan_lib_dir))

    # Make package
    with common.ChangedDirectory(tmp_cpan_dir):
        common.execute(['perl', 'Makefile.PL'])
        common.execute(['make', 'dist'])

    shutil.copy(os.path.join(tmp_cpan_dir, 'Tinkerforge-{0}.{1}.{2}.tar.gz'.format(*version)), root_dir)
    def prepare(self):
        if self.get_config_name().space == 'Tinkerforge':
            name = 'doc'
        else:
            name = 'doc_' + self.get_config_name().under

        common.recreate_dir(os.path.join(self.get_root_dir(), name))

        for language in ['en', 'de']:
            for category in ['Bricks', 'Bricklets']:
                os.makedirs(os.path.join(self.get_root_dir(), name, language, category))
    def prepare(self):
        if self.get_config_name().space == 'Tinkerforge':
            name = 'doc'
        else:
            name = 'doc_' + self.get_config_name().under

        common.recreate_dir(os.path.join(self.get_root_dir(), name))

        for language in ['en', 'de']:
            for category in ['Bricks', 'Bricklets']:
                os.makedirs(
                    os.path.join(self.get_root_dir(), name, language,
                                 category))
    def prepare(self):
        root_dir = self.get_root_dir()

        # Create directories
        common.recreate_dir(self.tmp_dir)
        os.makedirs(self.tmp_examples_dir)
        os.makedirs(self.tmp_source_dir)
        os.makedirs(self.tmp_build_dir)

        # Copy blockly and closure-library to build directory
        shutil.copytree(os.path.join(root_dir, '..', '..', 'tvpl-blockly'),
                        self.tmp_build_blockly_dir,
                        ignore=shutil.ignore_patterns('*/.git'))
        shutil.copytree(os.path.join(root_dir, '..', '..',
                                     'tvpl-closure-library'),
                        self.tmp_build_closure_library_dir,
                        ignore=shutil.ignore_patterns('*/.git', '*_test.js'))

        # Copy css/, js/, index.html and programEditor.html
        shutil.copytree(os.path.join(root_dir, 'css'),
                        os.path.join(self.tmp_source_dir, 'css'))
        shutil.copytree(os.path.join(root_dir, 'js'),
                        os.path.join(self.tmp_source_dir, 'js'))
        shutil.copy(os.path.join(root_dir, 'index.html'), self.tmp_source_dir)
        shutil.copy(os.path.join(root_dir, 'programEditor.html'),
                    self.tmp_source_dir)

        # Copy general examples
        for example in common.find_examples(root_dir, r'^example_.*\.tvpl$'):
            shutil.copy(example[1], self.tmp_examples_dir)

        # Copy changelog.txt and readme.txt
        shutil.copy(os.path.join(root_dir, 'changelog.txt'), self.tmp_dir)
        shutil.copy(os.path.join(root_dir, 'readme.txt'), self.tmp_dir)
        shutil.copy(os.path.join(root_dir, 'readme-alpha.txt'), self.tmp_dir)

        # Generate JavaScript bindings
        with common.ChangedDirectory(os.path.join(root_dir, '..',
                                                  'javascript')):
            common.execute(['python', 'generate_javascript_bindings.py'])
            common.execute(['python', 'generate_javascript_zip.py'])

        shutil.copy(
            os.path.join(self.tmp_javascript_dir, 'browser', 'source',
                         'Tinkerforge.js'),
            os.path.join(self.tmp_source_dir, 'js', 'Tinkerforge.js'))
    def prepare(self):
        root_dir = self.get_root_dir()

        # Create directories
        common.recreate_dir(self.tmp_dir)
        os.makedirs(self.tmp_examples_dir)
        os.makedirs(self.tmp_source_dir)
        os.makedirs(self.tmp_build_dir)

        # Copy blockly and closure-library to build directory
        shutil.copytree(os.path.join(root_dir, '..', '..', 'tvpl-blockly'), self.tmp_build_blockly_dir,
                        ignore=shutil.ignore_patterns('*/.git'))
        shutil.copytree(os.path.join(root_dir, '..', '..', 'tvpl-closure-library'), self.tmp_build_closure_library_dir,
                        ignore=shutil.ignore_patterns('*/.git', '*_test.js'))

        # Copy css/, js/, index.html and programEditor.html
        shutil.copytree(os.path.join(root_dir, 'css'), os.path.join(self.tmp_source_dir, 'css'))
        shutil.copytree(os.path.join(root_dir, 'js'), os.path.join(self.tmp_source_dir, 'js'))
        shutil.copy(os.path.join(root_dir, 'index.html'), self.tmp_source_dir)
        shutil.copy(os.path.join(root_dir, 'programEditor.html'), self.tmp_source_dir)

        # Copy general examples
        for example in common.find_examples(root_dir, r'^example_.*\.tvpl$'):
            shutil.copy(example[1], self.tmp_examples_dir)

        # Copy changelog.txt and readme.txt
        shutil.copy(os.path.join(root_dir, 'changelog.txt'),self.tmp_dir)
        shutil.copy(os.path.join(root_dir, 'readme.txt'),self.tmp_dir)
        shutil.copy(os.path.join(root_dir, 'readme-alpha.txt'),self.tmp_dir)

        # Generate JavaScript bindings
        with common.ChangedDirectory(os.path.join(root_dir, '..', 'javascript')):
            common.execute(['python', 'generate_javascript_bindings.py'])
            common.execute(['python', 'generate_javascript_zip.py'])

        shutil.copy(os.path.join(self.tmp_javascript_dir, 'browser', 'source', 'Tinkerforge.js'),
                    os.path.join(self.tmp_source_dir, 'js', 'Tinkerforge.js'))

if check_existing() and not 'FORCE' in os.environ:
    c.print('>> Using cached')
    exit(0)

archive = 'tesseract-' + os.path.basename(url)
c.download(url, archive)

src_dir = os.path.abspath('tesseract_src')
c.extract(archive, '.')
c.symlink(c.get_archive_top_dir(archive), src_dir)

c.ensure_got_path(install_dir)

c.recreate_dir(build_dir)
os.chdir(build_dir)

cmake_args = '"{0}" -DCMAKE_INSTALL_PREFIX="{1}" -DLeptonica_DIR="{1}/cmake" \
-DBUILD_TRAINING_TOOLS=OFF -DBUILD_TESTS=OFF'.format(src_dir, install_dir)

if platform.system() == "Windows":
    env_cmd = c.get_msvc_env_cmd(bitness=bitness, msvc_version=msvc_version)
    c.apply_cmd_env(env_cmd)
    cmake_args += ' ' + c.get_cmake_arch_args(bitness=bitness)

c.set_make_threaded()
c.run('cmake {}'.format(cmake_args))

if len(compat_flags) > 0:
    c.run('cmake {} .'.format(compat_flags))
 def prepare(self):
     common.recreate_dir(self.tmp_dir)
     os.makedirs(self.tmp_examples_dir)
 def prepare(self):
     common.recreate_dir(self.tmp_dir)
     os.makedirs(self.tmp_bindings_dir)
     os.makedirs(self.tmp_examples_dir)        
 def prepare(self):
     common.recreate_dir(self.tmp_dir)
     os.makedirs(self.tmp_source_dir)
     os.makedirs(self.tmp_source_meta_inf_services_dir)
     os.makedirs(self.tmp_source_com_tinkerforge_dir)
     os.makedirs(self.tmp_examples_dir)
Exemple #16
0
base_url = 'https://github.com/probonopd/linuxdeployqt/releases/download'
continuous_url = base_url + '/continuous/linuxdeployqt-continuous-x86_64.AppImage'
tagged_url = base_url + '/6/linuxdeployqt-6-x86_64.AppImage'
linuxdeployqt_url = tagged_url
linuxdeployqt_original = os.path.basename(linuxdeployqt_url)

c.download(linuxdeployqt_url, linuxdeployqt_original)
c.run('chmod a+x {}'.format(linuxdeployqt_original))

linuxdeployqt_bin = os.path.abspath('linuxdeployqt')
c.symlink(linuxdeployqt_original, linuxdeployqt_bin)

os.chdir(build_dir)

install_dir = os.path.abspath('appdir')
c.recreate_dir(install_dir)
c.run('make INSTALL_ROOT={0} DESTDIR={0} install'.format(install_dir))

if c.is_inside_docker():
    c.run('{}  --appimage-extract'.format(linuxdeployqt_bin))
    linuxdeployqt_bin = os.path.abspath('squashfs-root/AppRun')

os.environ['LD_LIBRARY_PATH'] = dependencies_dir + '/lib'
os.environ['VERSION'] = app_version
# debug flags: -unsupported-bundle-everything -unsupported-allow-new-glibc
flags = '' if os.getenv("DEBUG") is None else '-unsupported-allow-new-glibc'

additional_files = glob(ssl_dir + '/lib/lib*.so.*') + \
    glob('/usr/lib/x86_64-linux-gnu/nss/*')
out_lib_dir = install_dir + '/usr/lib'
os.makedirs(out_lib_dir, exist_ok=True)
 def prepare(self):
     common.recreate_dir(self.tmp_dir)
     os.makedirs(self.tmp_source_dir)
def generate(root_dir):
    tmp_dir = os.path.join(root_dir, 'nuget_package')
    tmp_unzipped_net20_dir = os.path.join(tmp_dir, 'unzipped_net20')
    tmp_unzipped_net40_dir = os.path.join(tmp_dir, 'unzipped_net40')
    tmp_unzipped_net40_source_tinkerforge_dir = os.path.join(
        tmp_unzipped_net40_dir, 'source', 'Tinkerforge')
    tmp_unzipped_netcoreapp20_dir = os.path.join(tmp_dir,
                                                 'unzipped_netcoreapp20')
    tmp_unzipped_netcoreapp20_source_tinkerforge_dir = os.path.join(
        tmp_unzipped_netcoreapp20_dir, 'source', 'Tinkerforge')

    # Make directories
    common.recreate_dir(tmp_dir)

    # Unzip
    version = common.get_changelog_version(root_dir)

    common.execute([
        '/usr/bin/unzip', '-q',
        os.path.join(
            root_dir,
            'tinkerforge_csharp_bindings_{0}_{1}_{2}.zip'.format(*version)),
        '-d', tmp_unzipped_net20_dir
    ])

    shutil.copytree(tmp_unzipped_net20_dir, tmp_unzipped_net40_dir)
    shutil.copytree(tmp_unzipped_net20_dir, tmp_unzipped_netcoreapp20_dir)

    # Make DLL for NET 4.0
    with common.ChangedDirectory(tmp_unzipped_net40_dir):
        common.execute([
            '/usr/bin/mcs', '/debug:full', '/optimize+', '/warn:4', '/sdk:4',
            '/target:library',
            '/doc:' + os.path.join(tmp_unzipped_net40_dir, 'Tinkerforge.xml'),
            '/out:' + os.path.join(tmp_unzipped_net40_dir, 'Tinkerforge.dll'),
            os.path.join(tmp_unzipped_net40_source_tinkerforge_dir, '*.cs')
        ])

    # Make DLL for NET Core 2.0
    with open(
            os.path.join(tmp_unzipped_netcoreapp20_source_tinkerforge_dir,
                         'Tinkerforge.csproj'), 'w') as f:
        f.write(NETCORE_CSPROJ)

    with common.ChangedDirectory(
            tmp_unzipped_netcoreapp20_source_tinkerforge_dir):
        common.execute(['/usr/bin/dotnet', 'build', '-c', 'Release'])

    # Download nuget.exe
    with common.ChangedDirectory(tmp_dir):
        common.execute(['wget', 'http://www.nuget.org/nuget.exe'])

    # Make Tinkerforge.nuspec
    common.specialize_template(
        os.path.join(root_dir, 'Tinkerforge.nuspec.template'),
        os.path.join(tmp_dir, 'Tinkerforge.nuspec'),
        {'{{VERSION}}': '.'.join(version)})

    # Make package
    with common.ChangedDirectory(tmp_dir):
        common.execute([
            'mono',
            os.path.join(tmp_dir, 'nuget.exe'), 'pack',
            os.path.join(tmp_dir, 'Tinkerforge.nuspec')
        ])

    shutil.move(
        os.path.join(tmp_dir,
                     'Tinkerforge.{0}.{1}.{2}.nupkg'.format(*version)),
        os.path.join(root_dir,
                     'tinkerforge.{0}.{1}.{2}.nupkg'.format(*version)))
 def prepare(self):
     common.recreate_dir(self.tmp_dir)
     os.makedirs(self.tmp_source_dir)
     os.makedirs(self.tmp_source_meta_inf_services_dir)
     os.makedirs(self.tmp_source_com_tinkerforge_dir)
     os.makedirs(self.tmp_examples_dir)
def generate(root_dir):
    tmp_dir                                          = os.path.join(root_dir, 'nuget_package')
    tmp_unzipped_net20_dir                           = os.path.join(tmp_dir, 'unzipped_net20')
    tmp_unzipped_net40_dir                           = os.path.join(tmp_dir, 'unzipped_net40')
    tmp_unzipped_net40_source_tinkerforge_dir        = os.path.join(tmp_unzipped_net40_dir, 'source', 'Tinkerforge')
    tmp_unzipped_netcoreapp20_dir                    = os.path.join(tmp_dir, 'unzipped_netcoreapp20')
    tmp_unzipped_netcoreapp20_source_tinkerforge_dir = os.path.join(tmp_unzipped_netcoreapp20_dir, 'source', 'Tinkerforge')

    # Make directories
    common.recreate_dir(tmp_dir)

    # Unzip
    version = common.get_changelog_version(root_dir)

    common.execute(['unzip',
                    '-q',
                    os.path.join(root_dir, 'tinkerforge_csharp_bindings_{0}_{1}_{2}.zip'.format(*version)),
                    '-d',
                    tmp_unzipped_net20_dir])

    shutil.copytree(tmp_unzipped_net20_dir, tmp_unzipped_net40_dir)
    shutil.copytree(tmp_unzipped_net20_dir, tmp_unzipped_netcoreapp20_dir)

    # Make DLL for NET 4.0
    with common.ChangedDirectory(tmp_unzipped_net40_dir):
        common.execute(['mcs',
                        '/debug:full',
                        '/optimize+',
                        '/warn:4',
                        '/sdk:4',
                        '/target:library',
                        '/doc:' + os.path.join(tmp_unzipped_net40_dir, 'Tinkerforge.xml'),
                        '/out:' + os.path.join(tmp_unzipped_net40_dir, 'Tinkerforge.dll'),
                        os.path.join(tmp_unzipped_net40_source_tinkerforge_dir, '*.cs')])

    # Make DLL for NET Core 2.0
    with open(os.path.join(tmp_unzipped_netcoreapp20_source_tinkerforge_dir, 'Tinkerforge.csproj'), 'w') as f:
        f.write(NETCORE_CSPROJ)

    with common.ChangedDirectory(tmp_unzipped_netcoreapp20_source_tinkerforge_dir):
        common.execute(['dotnet',
                        'build',
                        '-c',
                        'Release'])

    # Download nuget.exe
    with common.ChangedDirectory(tmp_dir):
        common.execute(['wget', 'http://www.nuget.org/nuget.exe'])

    # Make Tinkerforge.nuspec
    common.specialize_template(os.path.join(root_dir, 'Tinkerforge.nuspec.template'),
                               os.path.join(tmp_dir, 'Tinkerforge.nuspec'),
                               {'{{VERSION}}': '.'.join(version)})

    # Make package
    with common.ChangedDirectory(tmp_dir):
        common.execute(['mono',
                        os.path.join(tmp_dir, 'nuget.exe'),
                        'pack',
                        os.path.join(tmp_dir, 'Tinkerforge.nuspec')])

    shutil.move(os.path.join(tmp_dir, 'Tinkerforge.{0}.{1}.{2}.nupkg'.format(*version)),
                os.path.join(root_dir, 'tinkerforge.{0}.{1}.{2}.nupkg'.format(*version)))
Exemple #21
0
 def prepare(self):
     common.recreate_dir(self.tmp_dir)
     os.makedirs(self.tmp_source_tinkerforge_dir)
     os.makedirs(self.tmp_examples_dir)
     os.makedirs(self.tmp_examples_10_dir)
 def prepare(self):
     common.recreate_dir(self.tmp_dir)
     os.makedirs(self.tmp_source_dir)
Exemple #23
0
def generate(root_dir):
    tmp_dir = os.path.join(root_dir, 'cpan_package')
    tmp_unzipped_dir = os.path.join(tmp_dir, 'unzipped')
    tmp_unzipped_source_dir = os.path.join(tmp_unzipped_dir, 'source')
    tmp_unzipped_source_lib_dir = os.path.join(tmp_unzipped_source_dir, 'lib')
    tmp_cpan_dir = os.path.join(tmp_dir, 'cpan')
    tmp_cpan_lib_dir = os.path.join(tmp_cpan_dir, 'lib')

    # Make directories
    common.recreate_dir(tmp_dir)

    # Unzip
    version = common.get_changelog_version(root_dir)

    common.execute([
        '/usr/bin/unzip', '-q',
        os.path.join(
            root_dir,
            'tinkerforge_perl_bindings_{0}_{1}_{2}.zip'.format(*version)),
        '-d', tmp_unzipped_dir
    ])

    # Make CPAN package structure
    modules = ['Tinkerforge']

    for filename in os.listdir(
            os.path.join(tmp_unzipped_source_lib_dir, 'Tinkerforge')):
        modules.append('Tinkerforge::' + filename.replace('.pm', ''))

    common.execute([
        'module-starter', '--dir=' + tmp_cpan_dir,
        '--module=' + ','.join(modules), '--distro=Tinkerforge',
        '--author="Ishraq Ibne Ashraf"', '[email protected]'
    ])

    # Make README
    common.specialize_template(os.path.join(root_dir, 'README.template'),
                               os.path.join(tmp_cpan_dir, 'README'),
                               {'<<VERSION>>': '.'.join(version)})

    # Make Changes
    shutil.copy(os.path.join(tmp_unzipped_dir, 'changelog.txt'),
                os.path.join(tmp_cpan_dir, 'Changes'))

    # Copy Makefile.PL
    shutil.copy(os.path.join(tmp_unzipped_source_dir, 'Makefile.PL'),
                tmp_cpan_dir)

    # Copy source
    shutil.rmtree(tmp_cpan_lib_dir)
    shutil.copytree(os.path.join(tmp_unzipped_source_lib_dir),
                    os.path.join(tmp_cpan_lib_dir))

    # Make package
    with common.ChangedDirectory(tmp_cpan_dir):
        common.execute(['/usr/bin/perl', 'Makefile.PL'])
        common.execute(['make', 'dist'])

    shutil.copy(
        os.path.join(tmp_cpan_dir,
                     'Tinkerforge-{0}.{1}.{2}.tar.gz'.format(*version)),
        root_dir)
 def prepare(self):
     common.recreate_dir(self.tmp_dir)
     os.makedirs(self.tmp_source_tinkerforge_dir)
     os.makedirs(self.tmp_source_tinkerforge_uwp_dir)
     os.makedirs(self.tmp_examples_dir)