-
Notifications
You must be signed in to change notification settings - Fork 953
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Converting the complete environment from Bash to Python because of portability #147
Comments
I added it to the long term plan. We would like to do it, but there are quite a few more important goals. |
Thank you very much! Of course there are more important topics than this one, but I was just wondering why it was missing on the list. I'm closing the issue now! Thanks for the quick response! |
I am re-opening this as we surely want to do it, although not right now. |
I did some work towards converting all scripts to Python, which can be seen in my Branch. The python scripts reside in the It's still early work in progress. Apart from This could be used as a starting point, so any feedback or help would be greatly appreciated. I especially need help in replacing some of the bash commands, as I'm not really familiar with the Bash environment. [UPDATE] |
* Convert most Bash scripts to Python * Port cmake/install-share to python * Some cleanup * Replaced install-share in cmake file with fully working python version * Attemp to fix compile error * Fix compile for older python version * Try calling python 3 instead * Make install-share.py executable Compilable decompiler version * Decompiler script now runs successfully until unpacking * Running until calling bin2llvmir now * [skip ci] Integrate @silverbacknet changes + some fixes * [skip ci] Use CmdRunner.run_cmd everywhere in retdec_decompiler Small fixes and cleanup Early out if an error occurs * [skip ci] Latest fixes add retdec_tests_runner.py * [skip ci] Check that options are correct + cleanup and fixes * [skip ci] Fixed various errors * Try to fix running install-share script * Should now work on every os * Fix compile error * Convert compile-yara to python * [skip ci] Make test runner more portable * [skip ci] Use correct code style * [skip ci] Decompiler script now runs successfully * Now generates the same output as the bash script * Try fixing Travis on macOS * Upgrade python instead * Test scripts in travis * Fix build * Fix path * Update build Small cleanup * Fix error in decompiler script * Try to debug failure reason Fix test runner Use Python 3.5 on ubuntu * Use newer Python version and fix some errors * [skip ci] Little cleanup to make the code more clear Don't parse_args twice * [skip ci] First version of reimplementing logging * [skip ci] Some fixes and cleanup * [skip ci] Print memory usage, print output from unpacker, match code convention and some other fixes * [skip ci] Fix crash when using cleanup option; fix crash when using color ida * [skip ci] Fix --backend-aggressive-opts argument * [skip ci] Fix error when file arch is followed by a comment * [skip ci] Match Bash script more closely * [skip ci] Fix a few comments * [skip ci] Add some comments * [skip ci] Add early type_extractor/gen_cstdlib_and_linux_jsons.py and type_extractor/gen_windows_and_windrivers_jsons.py version * Try Unit tests * Try to fix test * Use absolute path instead * [skip ci] Add check for python scripts * scripts/retdec_decompiler.py: use output if specified via -o option
Done - everything is in |
That's great news! Thank you for your efforts. |
I wanted to ask if there are any plans to remove the bash completely from the project? In the presentation for the release of the project as open source, there was still talk of the need to switch to Python to make it more portable than before.
Unfortunately, I don't see any plans on the roadmap for this anymore. In my opinion, however, it would be quite desirable if Python could be used to depict the whole thing. This way you wouldn't have to do such a headstand under Windows to get the system up and running. The best way to do this is to simply run the program without external dependencies. That makes it entirely portable.
The text was updated successfully, but these errors were encountered: