When the full path of the output file is not provided smalisca assumes that / is being used, which leads to crash when user has no write permissions.
Example
smalisca>dc -c class_name -p ApiCrypt -f png -o test.png
Traceback (most recent call last):
File "/home/santoku/Tools/.smalienv/bin/smalisca", line 5, in
pkg_resources.run_script('smalisca==0.1', 'smalisca')
File "/home/santoku/Tools/.smalienv/local/lib/python2.7/site-packages/pkg_resources.py", line 488, in run_script
self.require(requires)[0].run_script(script_name, ns)
File "/home/santoku/Tools/.smalienv/local/lib/python2.7/site-packages/pkg_resources.py", line 1361, in run_script
exec(script_code, namespace, namespace)
File "/home/santoku/Tools/.smalienv/local/lib/python2.7/site-packages/smalisca-0.1-py2.7.egg/EGG-INFO/scripts/smalisca", line 68, in
File "/home/santoku/Tools/.smalienv/local/lib/python2.7/site-packages/cement-2.4.0-py2.7.egg/cement/core/foundation.py", line 694, in run
self.controller._dispatch()
File "/home/santoku/Tools/.smalienv/local/lib/python2.7/site-packages/cement-2.4.0-py2.7.egg/cement/core/controller.py", line 455, in _dispatch
return func()
File "/home/santoku/Tools/.smalienv/local/lib/python2.7/site-packages/cement-2.4.0-py2.7.egg/cement/core/controller.py", line 461, in _dispatch
return func()
File "build/bdist.linux-x86_64/egg/smalisca/controller/controller_analyzer.py", line 118, in default
File "/usr/lib/python2.7/cmd.py", line 142, in cmdloop
stop = self.onecmd(line)
File "/usr/lib/python2.7/cmd.py", line 221, in onecmd
return func(arg)
File "build/bdist.linux-x86_64/egg/smalisca/analysis/analysis_shell.py", line 794, in do_dc
File "build/bdist.linux-x86_64/egg/smalisca/modules/module_graph.py", line 184, in write
File "build/bdist.linux-x86_64/egg/graphviz/files.py", line 163, in render
File "build/bdist.linux-x86_64/egg/graphviz/files.py", line 152, in save
IOError: [Errno 13] Permission denied: '/test'
Hi,
When the full path of the output file is not provided smalisca assumes that / is being used, which leads to crash when user has no write permissions.
Example
smalisca>dc -c class_name -p ApiCrypt -f png -o test.png Traceback (most recent call last): File "/home/santoku/Tools/.smalienv/bin/smalisca", line 5, in
pkg_resources.run_script('smalisca==0.1', 'smalisca')
File "/home/santoku/Tools/.smalienv/local/lib/python2.7/site-packages/pkg_resources.py", line 488, in run_script
self.require(requires)[0].run_script(script_name, ns)
File "/home/santoku/Tools/.smalienv/local/lib/python2.7/site-packages/pkg_resources.py", line 1361, in run_script
exec(script_code, namespace, namespace)
File "/home/santoku/Tools/.smalienv/local/lib/python2.7/site-packages/smalisca-0.1-py2.7.egg/EGG-INFO/scripts/smalisca", line 68, in
File "/home/santoku/Tools/.smalienv/local/lib/python2.7/site-packages/cement-2.4.0-py2.7.egg/cement/core/foundation.py", line 694, in run self.controller._dispatch() File "/home/santoku/Tools/.smalienv/local/lib/python2.7/site-packages/cement-2.4.0-py2.7.egg/cement/core/controller.py", line 455, in _dispatch return func() File "/home/santoku/Tools/.smalienv/local/lib/python2.7/site-packages/cement-2.4.0-py2.7.egg/cement/core/controller.py", line 461, in _dispatch return func() File "build/bdist.linux-x86_64/egg/smalisca/controller/controller_analyzer.py", line 118, in default File "/usr/lib/python2.7/cmd.py", line 142, in cmdloop stop = self.onecmd(line) File "/usr/lib/python2.7/cmd.py", line 221, in onecmd return func(arg) File "build/bdist.linux-x86_64/egg/smalisca/analysis/analysis_shell.py", line 794, in do_dc File "build/bdist.linux-x86_64/egg/smalisca/modules/module_graph.py", line 184, in write File "build/bdist.linux-x86_64/egg/graphviz/files.py", line 163, in render File "build/bdist.linux-x86_64/egg/graphviz/files.py", line 152, in save IOError: [Errno 13] Permission denied: '/test'