On Wed, Apr 18, 2012 at 5:16 PM, Miki Tebeka <miki.teb...@gmail.com> wrote:

> > So I'm interested in suggestions/examples where a user can update a
> > config file to specify by which means they want (in this case) the ssh
> > functionality to be supplied.
> You can do something like that (it's called a factory):
>
> COMMANDS = {
>    'win32': 'win32 command goes here',
>    'linux2': 'linux command goes here',
>    'darwin': 'OSX command goes here',
> }
> def get_command():
>    return COMMANDS.get(sys.platform)
>

I'd actually suggest that you not do this.

It's too analogous to the old way of making things portable: #ifdef and
#define all over, EG:
#ifdef win32
#define thinga
#define thingb
#define thingc
#endif

#ifdef linux32
#define otherthinga
#define otherthingb
#define otherthingc
#endif

It's not nearly as adaptive as scaning $PATH for ssh, falling back on putty
if necessary - this is analogous to GNU autoconf.  You'd probably have a
small class you genericize this with - with one instance for each such
executable that might be different from one OS to another.  You could
probably just pass __init__ a list of possible commands to try, and then
have a __call__ method.

That way when Haiku takes the world by storm, your porting effort should be
smaller.  ^_^  (Or something.  I really, really hope that Windows, OS/X and
Linux won't be the only major OS's for all time)
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to