Subversion Repositories freemyipod

Rev

Rev 404 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 404 Rev 406
Line 945... Line 945...
945
        self.logger.info("Removing file " + filename + "...")
945
        self.logger.info("Removing file " + filename + "...")
946
        self.embios.file_unlink(filename)
946
        self.embios.file_unlink(filename)
947
        self.logger.info(" done\n")
947
        self.logger.info(" done\n")
948
 
948
 
949
    @command
949
    @command
-
 
950
    def rmtree(self, path):
-
 
951
        """
-
 
952
            Recursively removes a folder
-
 
953
            <path>: the folder to be removed
-
 
954
        """
-
 
955
        handle = self.embios.dir_open(path)
-
 
956
        while True:
-
 
957
            try:
-
 
958
                entry = self.embios.dir_read(handle)
-
 
959
                if entry.name == "." or entry.name == "..": continue
-
 
960
                elif entry.attributes & 0x10:
-
 
961
                    self.rmtree(path + "/" + entry.name)
-
 
962
                else: self.rm(path + "/" + entry.name)
-
 
963
            except: break
-
 
964
        self.embios.dir_close(handle)
-
 
965
        self.rmdir(path)
-
 
966
 
-
 
967
    @command
950
    def mv(self, oldname, newname):
968
    def mv(self, oldname, newname):
951
        """
969
        """
952
            Renames or moves file or directory <oldname> to <newname>
970
            Renames or moves file or directory <oldname> to <newname>
953
        """
971
        """
954
        self.logger.info("Renaming " + oldname + " to " + newname + "...")
972
        self.logger.info("Renaming " + oldname + " to " + newname + "...")
Line 981... Line 999...
981
        self.embios.file_close(fd)
999
        self.embios.file_close(fd)
982
        f.close()
1000
        f.close()
983
        self.logger.info(" done\n")
1001
        self.logger.info(" done\n")
984
 
1002
 
985
    @command
1003
    @command
-
 
1004
    def gettree(self, remotepath, localpath, buffer = False, buffsize = "10000"):
-
 
1005
        """
-
 
1006
            Downloads a directory tree
-
 
1007
            <remotepath>: path on the device
-
 
1008
            <localpath>: path on the computer
-
 
1009
            [buffer]: buffer address (optional)
-
 
1010
            [buffsize]: buffer size (optional)
-
 
1011
        """
-
 
1012
        if buffer == False: buffer = self.embios.lib.dev.usermem.lower
-
 
1013
        else: buffer = self._hexint(buffer)
-
 
1014
        buffsize = self._hexint(buffsize)
-
 
1015
        try: os.mkdir(localpath)
-
 
1016
        except: pass
-
 
1017
 
-
 
1018
        handle = self.embios.dir_open(remotepath)
-
 
1019
        while True:
-
 
1020
            try:
-
 
1021
                entry = self.embios.dir_read(handle)
-
 
1022
                if entry.name == "." or entry.name == "..": continue
-
 
1023
                elif entry.attributes & 0x10:
-
 
1024
                    self.gettree(remotepath + "/" + entry.name, localpath + "/" + entry.name, buffer, buffsize)
-
 
1025
                else: self.get(remotepath + "/" + entry.name, localpath + "/" + entry.name, buffer, buffsize)
-
 
1026
            except: break
-
 
1027
        self.embios.dir_close(handle)
-
 
1028
 
-
 
1029
    @command
986
    def put(self, localname, remotename, buffer = False, buffsize = "10000"):
1030
    def put(self, localname, remotename, buffer = False, buffsize = "10000"):
987
        """
1031
        """
988
            Uploads a file
1032
            Uploads a file
989
            <remotename>: filename on the device
-
 
990
            <localname>: filename on the computer
1033
            <localname>: filename on the computer
-
 
1034
            <remotename>: filename on the device
991
            [buffer]: buffer address (optional)
1035
            [buffer]: buffer address (optional)
992
            [buffsize]: buffer size (optional)
1036
            [buffsize]: buffer size (optional)
993
        """
1037
        """
994
        if buffer == False: buffer = self.embios.lib.dev.usermem.lower
1038
        if buffer == False: buffer = self.embios.lib.dev.usermem.lower
995
        else: buffer = self._hexint(buffer)
1039
        else: buffer = self._hexint(buffer)
Line 1010... Line 1054...
1010
        self.embios.file_close(fd)
1054
        self.embios.file_close(fd)
1011
        f.close()
1055
        f.close()
1012
        self.logger.info(" done\n")
1056
        self.logger.info(" done\n")
1013
 
1057
 
1014
    @command
1058
    @command
-
 
1059
    def puttree(self, localpath, remotepath, buffer = False, buffsize = "10000"):
-
 
1060
        """
-
 
1061
            Uploads a directory tree
-
 
1062
            <localpath>: path on the computer
-
 
1063
            <remotepath>: path on the device
-
 
1064
            [buffer]: buffer address (optional)
-
 
1065
            [buffsize]: buffer size (optional)
-
 
1066
        """
-
 
1067
        if buffer == False: buffer = self.embios.lib.dev.usermem.lower
-
 
1068
        else: buffer = self._hexint(buffer)
-
 
1069
        buffsize = self._hexint(buffsize)
-
 
1070
        try: self.mkdir(remotepath)
-
 
1071
        except: pass
-
 
1072
        pathlen = len(localpath)
-
 
1073
        for d in os.walk(localpath):
-
 
1074
            prefix = remotepath + "/" + d[0].replace("\\", "/")[pathlen:] + "/"
-
 
1075
            for dir in d[1]:
-
 
1076
                if dir != ".svn":
-
 
1077
                    try: self.mkdir(prefix + dir)
-
 
1078
                    except: pass
-
 
1079
            for f in d[2]:
-
 
1080
                if not prefix.find("/.svn/") > -1:
-
 
1081
                    self.put(d[0] + "/" + f, prefix + f, buffer, buffsize)
-
 
1082
 
-
 
1083
    @command
1015
    def ls(self, path = "/"):
1084
    def ls(self, path = "/"):
1016
        """
1085
        """
1017
            Lists all files in the specified path
1086
            Lists all files in the specified path
1018
            [path]: the path which is listed
1087
            [path]: the path which is listed
1019
        """
1088
        """