Coder Social home page Coder Social logo

Comments (3)

guruDanny67 avatar guruDanny67 commented on June 30, 2024

I make a small test program to see if all the files will be extracted ok:

import tarfile
import os

def ex_all(base_dir):
    lf = os.listdir(base_dir)
    for i in lf:
        full = os.path.join(base_dir, i)
        if os.path.isfile(full):
            if i.endswith('.zip'):
                print('--- Zip file %s ...' % (i, ))
            elif i.endswith('.exe'):
                print('--- Exe file %s ...' % (i, ))
            else:
                print(i)
                tf = tarfile.open(full)
                ext_dir = os.path.join('c:/temp/u', i)
                tf.extractall(path = ext_dir)

ex_all('c:/gtk-build/src')

and every file present in my src dir (sometime with multiple versions, for gtk3 I have tarballs for 3.22.5, .6, .7, .8, .9, .11 & .12) it's been correcty extracted without error but probably to handle the --drop conponent of the tar file we need to extract all the single files.

Another thing that is different from the tar utility is that the tar utility overwrite, silently, all the file, even the read only one, while python gives an exception (I found it when I restart the script because I don't test for the .exe extension of nuget).

This should be no problem for us because, if I understand correctly, if the extraction directory exist the unpack part is simply skipped.

This lead me to a note: when we change version of some package (say, gtk3 from 3.22.6 o 3.22.12) to get the update data we need to delete the directory first or pass a --clean option ?

If it's the case we can put a marker file (wingtk-extracted-version.txt or something like this) and check this file to see if we already extracted the tarball and, if the version change, clean up the directory and extract the new one ?

from gvsbuild.

nacho avatar nacho commented on June 30, 2024

Sorry for the late response, I would say, let's check what jhbuild does on this regard and copy the behavior

from gvsbuild.

nacho avatar nacho commented on June 30, 2024

Closing this now. Thanks

from gvsbuild.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.