#! /usr/bin/env python

"""
Usage: ./ssh_test.py hostname username 
"""

import sys;
import getpass;
import os;
from ssh import *;

if len(sys.argv) < 3:
    print "Usage: ./ssh_test.py hostname username";
    sys.exit();


passwd = getpass.getpass();

print "Log in...";

(pid, tty) = rlogin(sys.argv[1], sys.argv[2], passwd);

print "Print working directory:"
print rpwd(tty);


print "List \"this/dir/should/not/exist\":";
try:
    print rlistdir(tty, "this/dir/should/not/exist");
except ROSError, e:
    print e;

print "List \".\":";
print rlistdir(tty, ".");
raw_input("(Press enter)")


print "Absolute path of \".\":";
print rabspath(tty, ".");
print "Absolute path of \"/usr/bin/../share/\":";
print rabspath(tty, "/usr/bin/../share/");

print "Is \".ssh\" a directory?";
print risdir(tty, ".ssh");
print "Is \".ssh\" a file?";
print risfile(tty, ".ssh");

print "Is \".profile\" a directory?";
print risdir(tty, ".profile");
print "Is \".profile\" a file?";
print risfile(tty, ".profile");

print "Is \"this/dir/should/not/exist\" a directory?";
print risdir(tty, "this/dir/should/not/exist");
print "Is \"this/dir/should/not/exist\" a file?";
print risfile(tty, "this/dir/should/not/exist");
raw_input("(Press enter)")

print "Create directory \"some_new_directory\":";
rmkdir(tty, "some_new_directory");
print "Done."

print "Create directory \"some_new_directory\" a second time:";
try:
    rmkdir(tty, "some_new_directory");
except ROSError, e:
    print e;
else:
    print "Done."

print "Remove *file* \"some_new_directory\":";
try:
    rremove(tty, "some_new_directory");
except ROSError, e:
    print e;
else:
    print "Done."


print "Rename directory \"some_new_directory\" to \"a_renamed_directory\":";
rrename(tty, "some_new_directory", "a_renamed_directory");
print "Done."

print "Rename directory \"some_new_directory\" to \"a_renamed_directory\" a \
second time:";
try:
    rrename(tty, "some_new_directory", "a_renamed_directory");
except ROSError, e:
    print e;
else:
    print "Done."

print "Change permissions of \"a_renamed_directory\" to 744:";
rchmod(tty, "a_renamed_directory", 744);
print "Done."

print "Change permissions of \"/usr\" to 755:";
try:
    rchmod(tty, "/usr", 755);
except ROSError, e:
    print e;
else:
    print "Done."


print "Remove directory \"a_renamed_directory\":";
rrmdir(tty, "a_renamed_directory");
print "Done."
raw_input("(Press enter)")

print "Copy locale file \"/etc/fstab\" to remote file \"some_new_file\":";
print scp(passwd, "/etc/fstab", "%s@%s:some_new_file" % (sys.argv[2], sys.argv[1]));

print "Remove file \"some_new_file\":";
rremove(tty, "some_new_file");
print "Done."


print "Log out...";

rlogout(tty);

os.waitpid(pid, 0);