This question has been flagged
3 Replies
14255 Views

Imagine yourself in a module's form, as if you were going to update it.

You can see the name, the summary the version... but, for some reason, you need to know where the module physically is. You need to know the actual path to the files.

How can you do that? Should you run a search on every addon folder in the config, looking for a folder with the same name of the module or is there any "secret" way of getting that info?

;)

Avatar
Discard
Best Answer

put this in your code: 

import os
path = os.path.join(os.path.dirname(os.path.abspath(__file__)))

wich will return the path of file the code is in... (show it as you find apropriate.. as field value, popup message etc...)

 

hope it helps :)

Avatar
Discard
Best Answer
import os
directory = os.path.dirname(__file__)
print('Your directory path:--------', directory)


Avatar
Discard
Author Best Answer

Thanks Bole but that was pretty much what I was doing and it would only show me the current module. The script had to tell me the path of the module where it was beeing executed from and not where the python file was located.

This is how I eventually did the trick:

        folder_found=False
        addons_path=config['addons_path'].split(',')
        for addons_folder in addons_path:
            readme_path=addons_folder + '\\' + self.name
            
            if os.path.isdir(readme_path):
                folder_found=True
                try:
                    f=open(readme_path +'/README.md',"w")
                    f.write(readme_txt.encode('utf-8'))
                    f.close()
                except:
                    raise osv.except_osv(_('Error!'),_('Unable to write file at ' + readme_path))
                break

        if not folder_found:
            raise osv.except_osv(_('Error!'),_("Unable to find '%s' folder " % self.name))

 

Avatar
Discard