def render_POST(self, req):
		data = req.args['file'][0]
		print "[filename req.args]", req.args['filename'][0]
		filename = mbasename(req.args['filename'][0])
		print "[filename]", filename
		if not filename.endswith(".ipk"):
			return self.res % (_("wrong filetype!") ,_("Close"), _("Add"))
		
		if not data:
			req.setResponseCode(http.OK)
			return self.res % ( _("filesize was 0, not uploaded") ,
					_("Close"),
					 _("Add")
					)
		
		fd,fn = mkstemp(dir = "/tmp/")
		cnt = os_write(fd, data)
		os_close(fd)
		os_chmod(fn, 0755)
		
		if cnt <= 0: # well, actually we should check against len(data) but lets assume we fail big time or not at all
			try:
				os_unlink(fn)
			except OSError, oe:
				pass
			req.setResponseCode(http.OK)
			return  self.res % (_("error writing to disk, not uploaded"),_("Close"), _("Add"))
Beispiel #2
0
def purgeDirs(path=os_curdir, verbose=True, dry_run=False):
    """Purge orphaned .pyc/.pyo files and remove emptied directories"""

    for dirname, dirs, files in os_walk(path, topdown=False):
        to_purge = [
            f for f in files
            if (f.endswith('.pyc') or f.endswith('.pyo'))
            and f[:-1] not in files     # don't purge if it has a .py
        ]
        for f in to_purge:
            filename = os_path.join(dirname, f)
            if verbose:
                print "deleting", filename
            if not dry_run:
                os_unlink(filename)

        if to_purge and files==to_purge:
            for d in dirs:
                # Do any of the subdirectories still exist?
                if os_path.exists(os_path.join(dirname, d)):
                    # If so, we've done all we can
                    break
            else:
                # Go ahread and remove the current directory
                if verbose:
                    print "removing ", dirname
                if not dry_run:
                    os_removedirs(dirname)
Beispiel #3
0
	def saveXML(self):
		try:
			fp = file(self.filename, 'w')
			fp.write("<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n")
			fp.write("<ci>\n")
			fp.write("\t<slot>\n")
			fp.write("\t\t<id>%s</id>\n" % self.ci_slot)
			for item in self.selectedcaid:
				if len(self.selectedcaid):
					fp.write("\t\t<caid id=\"%s\" />\n" % item[0])
			for item in self.servicelist:
				if len(self.servicelist):
					psname = xml_escape(item[0])
					psattr = xml_escape(item[3])
					if item[2]==1:
						fp.write("\t\t<provider name=\"%s\" dvbnamespace=\"%s\" />\n" % (psname, psattr))
					else:
						fp.write("\t\t<service name=\"%s\" ref=\"%s\" />\n"  % (psname, psattr))
			fp.write("\t</slot>\n")
			fp.write("</ci>\n")
			fp.flush()
			fsync(fp.fileno())
			fp.close()
		except:
			print "[CI_Config_CI%d] xml not written" %self.ci_slot
			os_unlink(self.filename)
Beispiel #4
0
	def render_POST(self, req):
		uploaddir = self.default_uploaddir
		if req.args['path'][0]:
			if os_path.isdir(req.args['path'][0]):
				uploaddir = req.args['path'][0]
				if uploaddir[-1] != "/":
					uploaddir += "/"
			else:
				req.setResponseCode(http.OK)
				req.setHeader('Content-type', 'text/html')
				return "path '%s' to upload not existing!" % req.args['path'][0]

		data = req.args['file'][0]
		if not data:
			req.setResponseCode(http.OK)
			req.setHeader('Content-type', 'text/html')
			return "filesize was 0, not uploaded"

		fd, fn = mkstemp(dir = uploaddir)
		cnt = os_write(fd, data)
		os_close(fd)
		os_chmod(fn, 0755)
		
		if cnt <= 0: # well, actually we should check against len(data) but lets assume we fail big time or not at all
			try:
				os_unlink(fn)
			except OSError, oe:
				pass
			req.setResponseCode(http.OK)
			req.setHeader('Content-type', 'text/html')
			return "error writing to disk, not uploaded"
Beispiel #5
0
 def saveXML(self):
     try:
         fp = file(self.filename, 'w')
         fp.write("<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n")
         fp.write("<ci>\n")
         fp.write("\t<slot>\n")
         fp.write("\t\t<id>%s</id>\n" % self.ci_slot)
         for item in self.selectedcaid:
             if len(self.selectedcaid):
                 fp.write("\t\t<caid id=\"%s\" />\n" % item[0])
         for item in self.servicelist:
             if len(self.servicelist):
                 psname = xml_escape(item[0])
                 psattr = xml_escape(item[3])
                 if item[2] == 1:
                     fp.write(
                         "\t\t<provider name=\"%s\" dvbnamespace=\"%s\" />\n"
                         % (psname, psattr))
                 else:
                     fp.write("\t\t<service name=\"%s\" ref=\"%s\" />\n" %
                              (psname, psattr))
         fp.write("\t</slot>\n")
         fp.write("</ci>\n")
         fp.flush()
         fsync(fp.fileno())
         fp.close()
     except:
         print "[CI_Config_CI%d] xml not written" % self.ci_slot
         os_unlink(self.filename)
Beispiel #6
0
    def deleteConfirmed(self, ret):
        if not ret:
            return

        if self.currlist == "remote":
            absRemoteFile, fileName, fileSize = self.getRemoteFile()
            if not fileName:
                return

            def callback(ret=None):
                AddPopup(
                    _("Removed %s.") % (fileName), MessageBox.TYPE_INFO, -1)

            def errback(ret=None):
                AddPopup(
                    _("Could not delete %s.") % (fileName),
                    MessageBox.TYPE_ERROR, -1)

            self.ftpclient.removeFile(absRemoteFile).addCallback(
                callback).addErrback(errback)
        else:
            assert (self.currlist == "local")
            absLocalFile, fileName = self.getLocalFile()
            if not fileName:
                return

            try:
                os_unlink(absLocalFile)
            except OSError as oe:
                AddPopup(
                    _("Could not delete %s.") % (fileName),
                    MessageBox.TYPE_ERROR, -1)
            else:
                AddPopup(
                    _("Removed %s.") % (fileName), MessageBox.TYPE_INFO, -1)
	def deleteConfirmed(self, ret):
		if not ret:
			return

		if self.currlist == "remote":
			absRemoteFile, fileName, fileSize = self.getRemoteFile()
			if not fileName:
				return

			def callback(ret = None):
				AddPopup(_("Removed %s.") % (fileName), MessageBox.TYPE_INFO, -1)
			def errback(ret = None):
				AddPopup(_("Could not delete %s.") % (fileName), MessageBox.TYPE_ERROR, -1)

			self.ftpclient.removeFile(absRemoteFile).addCallback(callback).addErrback(errback)
		else:
			assert(self.currlist == "local")
			absLocalFile, fileName = self.getLocalFile()
			if not fileName:
				return

			try:
				os_unlink(absLocalFile)
			except OSError as oe:
				AddPopup(_("Could not delete %s.") % (fileName), MessageBox.TYPE_ERROR, -1)
			else:
				AddPopup(_("Removed %s.") % (fileName), MessageBox.TYPE_INFO, -1)
Beispiel #8
0
 def moveNextSuffBG(self, retval):
     if self.sufflst and not retval:
         fr = self.ele[2] + self.sufflst[0]
         to = self.ele[3] + self.sufflst[0]
         self.sufflst = self.sufflst[1:]
         print("Moving %s to %s" % (fr, to))
         if os_path.exists(fr):
             self.container.execute("/bin/cp", "/bin/cp", fr, to)
         else:
             self.moveNextSuffBG(0)
     elif retval:
         for suff in self.sufflst2:
             if os_path.exists(self.ele[3] +
                               suff) and os_path.exists(self.ele[2] + suff):
                 os_unlink(self.ele[3] + suff)
         mess = _("Failed to move the movie %s to %s in the background") % (
             self.ele[2], self.ele[3])
         self.message(self.ele[0], self.ele[1], None, mess)
         self.runDone(1)
     else:
         for suff in self.sufflst2:
             if os_path.exists(self.ele[2] +
                               suff) and os_path.exists(self.ele[3] + suff):
                 os_unlink(self.ele[2] + suff)
         mess = _("Successfully moved the movie %s") % (self.ele[2])
         self.message(self.ele[0], self.ele[1], None, mess)
         self.runDone(0)
Beispiel #9
0
def unlink(path):
    """os.unlink but ignoring errors due to the path already not existing."""
    try:
        os_unlink(path)
    except OSError as err:
        if err.errno != ENOENT:
            raise
Beispiel #10
0
    def render_POST(self, req):
        uploaddir = self.default_uploaddir
        if req.args['path'][0]:
            if os_path.isdir(req.args['path'][0]):
                uploaddir = req.args['path'][0]
                if uploaddir[-1] != "/":
                    uploaddir += "/"
            else:
                req.setResponseCode(http.OK)
                req.setHeader('Content-type', 'text/html')
                return "path '%s' to upload not existing!" % req.args['path'][0]

        data = req.args['file'][0]
        if not data:
            req.setResponseCode(http.OK)
            req.setHeader('Content-type', 'text/html')
            return "filesize was 0, not uploaded"

        fd, fn = mkstemp(dir=uploaddir)
        cnt = os_write(fd, data)
        os_close(fd)
        os_chmod(fn, 0755)

        if cnt <= 0:  # well, actually we should check against len(data) but lets assume we fail big time or not at all
            try:
                os_unlink(fn)
            except OSError, oe:
                pass
            req.setResponseCode(http.OK)
            req.setHeader('Content-type', 'text/html')
            return "error writing to disk, not uploaded"
 def run(self):
     versions = get_versions(verbose=True)
     _build.run(self)
     # now locate _version.py in the new build/ directory and replace it with an updated value
     target_versionfile = path_join(self.build_lib, versionfile_build)
     print('UPDATING {}'.format(target_versionfile))
     os_unlink(target_versionfile)
     with open(target_versionfile, 'w') as file_:
         file_.write(SHORT_VERSION_PY % versions)
Beispiel #12
0
 def make_release_tree(self, base_dir, files):
    _sdist.make_release_tree(self, base_dir, files)
    # now locate _version.py in the new base_dir directory (remembering that it may be a hardlink) and replace it with an
    # updated value
    target_versionfile = path_join(base_dir, versionfile_source)
    print('UPDATING {}'.format(target_versionfile))
    os_unlink(target_versionfile)
    with open(target_versionfile, 'w') as f:
       f.write(SHORT_VERSION_PY % self._versioneer_generated_versions)
 def make_release_tree(self, base_dir, files):
     _sdist.make_release_tree(self, base_dir, files)
     # now locate _version.py in the new base_dir directory (remembering that it may be a hardlink) and replace it with an
     # updated value
     target_versionfile = path_join(base_dir, versionfile_source)
     print('UPDATING {}'.format(target_versionfile))
     os_unlink(target_versionfile)
     with open(target_versionfile, 'w') as f:
         f.write(SHORT_VERSION_PY % self._versioneer_generated_versions)
Beispiel #14
0
 def run(self):
    versions = get_versions(verbose=True)
    _build.run(self)
    # now locate _version.py in the new build/ directory and replace it with an updated value
    target_versionfile = path_join(self.build_lib, versionfile_build)
    print('UPDATING {}'.format(target_versionfile))
    os_unlink(target_versionfile)
    with open(target_versionfile, 'w') as file_:
       file_.write(SHORT_VERSION_PY % versions)
Beispiel #15
0
 def make_graph(self, fname, ftype='png'):
     """
     Create the dependency graph as a file named fname of the type ftype
     @param self
     @param string fname name of the graphics file to create. If no path is specified,
             the current directory is used. If a path is specified, it should already exist!
     @param string ftype graphics type. Must be supported by the used graphviz module! Defaults to 'png'.
     @return string error stderr from graphviz (if any - otherwise empty string)
     """
     if not is_str(ftype):
         logger.error(
             _('%(func)s was called with wrong parameter type: required: [%(req)s], given: [%(got)s]'
               ), {
                   'func': 'depgraph.make_graph',
                   'req': 'str',
                   'got': ','.join(is_what(ftype))
               })
         return
     if not is_str(fname):
         logger.error(
             _('%(func)s was called with wrong parameter type: required: [%(req)s], given: [%(got)s]'
               ), {
                   'func': 'depgraph.make_graph',
                   'req': 'str',
                   'got': ','.join(is_what(fname))
               })
         return
     if self.graph == '':
         logger.error(_('make_graph() called on an empty graph!'))
         return
     # Write graph information to a temporary file
     tmpname = fname + '.tmp'
     outfile = fopen(tmpname, 'w')
     outfile.write('digraph ' + self.name + '{\n' + self.graph + '\n}\n')
     outfile.close()
     # Call graphviz to generate the image
     props = ' -T' + ftype + ' -Nstyle=filled'
     parms = ' -o ' + fname + ' ' + tmpname
     if self.fontname != '': props += ' -Nfontname="' + self.fontname + '"'
     if self.fontsize != '': props += ' -Nfontsize="' + self.fontsize + '"'
     if self.size != '': props += ' -Gsize="' + self.size + '"'
     if self.mod == 'fdp' and self.len_fdp != '':
         props += ' -Elen=' + self.len_fdp
     elif self.mod == 'neato' and self.len_neato != '':
         props += ' -Elen=' + self.len_neato
     elif self.mod == 'dot' and self.ranksep_dot != '':
         props += ' -Granksep=' + self.ranksep_dot
     elif self.mod == 'twopi' and self.ranksep_twopi != '':
         props += ' -Granksep=' + self.ranksep_twopi
     elif self.mod == 'circo' and self.mindist_circo != '':
         props += ' -Gmindist=' + self.mindist_twopi
     if self.charset != '': props += ' -Gcharset="' + self.charset + '"'
     out, err = popen(self.bin + props + parms)
     logger.debug('calling "' + self.bin + props + parms + '"')
     if self.deltmp: os_unlink(tmpname)
     return err
Beispiel #16
0
 def make_graph(self, fname, ftype="png"):
     """
     Create the dependency graph as a file named fname of the type ftype
     @param self
     @param string fname name of the graphics file to create. If no path is specified,
             the current directory is used. If a path is specified, it should already exist!
     @param string ftype graphics type. Must be supported by the used graphviz module! Defaults to 'png'.
     @return string error stderr from graphviz (if any - otherwise empty string)
     """
     if not is_str(ftype):
         logger.error(
             _("%(func)s was called with wrong parameter type: required: [%(req)s], given: [%(got)s]"),
             {"func": "depgraph.make_graph", "req": "str", "got": ",".join(is_what(ftype))},
         )
         return
     if not is_str(fname):
         logger.error(
             _("%(func)s was called with wrong parameter type: required: [%(req)s], given: [%(got)s]"),
             {"func": "depgraph.make_graph", "req": "str", "got": ",".join(is_what(fname))},
         )
         return
     if self.graph == "":
         logger.error(_("make_graph() called on an empty graph!"))
         return
     # Write graph information to a temporary file
     tmpname = fname + ".tmp"
     outfile = fopen(tmpname, "w")
     outfile.write("digraph " + self.name + "{\n" + self.graph + "\n}\n")
     outfile.close()
     # Call graphviz to generate the image
     props = " -T" + ftype + " -Nstyle=filled"
     parms = " -o " + fname + " " + tmpname
     if self.fontname != "":
         props += ' -Nfontname="' + self.fontname + '"'
     if self.fontsize != "":
         props += ' -Nfontsize="' + self.fontsize + '"'
     if self.size != "":
         props += ' -Gsize="' + self.size + '"'
     if self.mod == "fdp" and self.len_fdp != "":
         props += " -Elen=" + self.len_fdp
     elif self.mod == "neato" and self.len_neato != "":
         props += " -Elen=" + self.len_neato
     elif self.mod == "dot" and self.ranksep_dot != "":
         props += " -Granksep=" + self.ranksep_dot
     elif self.mod == "twopi" and self.ranksep_twopi != "":
         props += " -Granksep=" + self.ranksep_twopi
     elif self.mod == "circo" and self.mindist_circo != "":
         props += " -Gmindist=" + self.mindist_twopi
     if self.charset != "":
         props += ' -Gcharset="' + self.charset + '"'
     out, err = popen(self.bin + props + parms)
     logger.debug('calling "' + self.bin + props + parms + '"')
     if self.deltmp:
         os_unlink(tmpname)
     return err
Beispiel #17
0
def unlink(path):
    """
    Just like os.unlink but ignoring errors due to the path already
    not existing.

    :param path: The path to unlink.
    """
    try:
        os_unlink(path)
    except OSError, err:
        if err.errno != ENOENT:
            raise
Beispiel #18
0
    def render_POST(self, req):
        isXml = 'xml' in req.args and req.args['xml'][0] == 'True'
        uploaddir = self.default_uploaddir
        if req.args['path'][0]:
            if os_path.isdir(req.args['path'][0]):
                uploaddir = req.args['path'][0]
                if uploaddir[-1] != "/":
                    uploaddir += "/"
            else:
                return self.out_POST(
                    req, False,
                    "path '%s' to upload not existing!" % req.args['path'][0],
                    isXml)

        data = req.args['file'][0]
        if not data:
            return self.out_POST(req, False, "filesize was 0, not uploaded",
                                 isXml)

        # allw to overwrite files (if the user requests it), but not in critical directories
        overwrite = 'overwrite' in req.args and req.args['overwrite'][
            0] == 'True'
        if overwrite and uploaddir in self.restricted_paths:
            overwrite = False

        try:
            matches = search('.*?filename="(.*?)"\r\n.*?',
                             req.content.getvalue())
            fn = os_path.join(uploaddir, matches.group(1))
        except Exception as e:
            fn = None

        # NOTE: we only accept the given filename if no such file exists yet or the user requested it AND we think its safe
        if fn and (overwrite or not os_path.exists(fn)):
            fd = os_open(fn, O_WRONLY | O_CREAT)
        else:
            fd, fn = mkstemp(dir=uploaddir)
        cnt = os_write(fd, data)
        os_close(fd)
        os_chmod(fn, 0o755)

        if cnt <= 0:  # well, actually we should check against len(data) but lets assume we fail big time or not at all
            try:
                os_unlink(fn)
            except OSError as oe:
                pass
            return self.out_POST(req, False,
                                 "error writing to disk, not uploaded", isXml)
        else:
            statetext = fn if isXml else "uploaded to %s" % fn
            return self.out_POST(req, True, statetext, isXml)
Beispiel #19
0
def app(request):
    """
    Define app used by tests
    """
    settings_override = {
        'TESTING': True,
        'SQLALCHEMY_DATABASE_URI': TEST_DATABASE_URI,
        'UPLOADS_DEFAULT_DEST': '/tmp/test_upload',
        'SQLALCHEMY_TRACK_MODIFICATIONS': False
    }
    flask_app = create_app(settings_override)
    with flask_app.app_context():
        if os_path.exists(TESTDB_PATH):
            os_unlink(TESTDB_PATH)
        create_db()
    return flask_app
    def render_POST(self, req):
        uploaddir = self.default_uploaddir
        print "[UploadTextResource] req.args ", req.args
        if req.args['path'][0]:
            if os_path.isdir(req.args['path'][0]):
                uploaddir = req.args['path'][0]
                if uploaddir[-1] != "/":
                    uploaddir += "/"
            else:
                print "[UploadTextResource] not a dir", req.args['path'][0]
                req.setResponseCode(http.OK)
                req.setHeader('Content-type', 'text/html')
                return "path '%s' to upload not existing!" % req.args['path'][0]

            if uploaddir[:
                         10] == "/etc/opkg/" or uploaddir[:
                                                          12] == "/usr/script/":
                pass
            else:
                req.setResponseCode(http.OK)
                req.setHeader('Content-type', 'text/html')
                return "illegal upload directory: " + req.args['path'][0]

            data = req.args['text'][0].replace('\r\n', '\n')
        if not data:
            req.setResponseCode(http.OK)
            req.setHeader('Content-type', 'text/html')
            return "filesize was 0, not uploaded"
        else:
            print "[UploadTextResource] text:", data

        filename = req.args['filename'][0]

        fd, fn = mkstemp(dir=uploaddir)
        cnt = os_write(fd, data)
        os_close(fd)
        os_chmod(fn, 0755)

        if cnt <= 0:  # well, actually we should check against len(data) but lets assume we fail big time or not at all
            try:
                os_unlink(fn)
            except OSError, oe:
                pass
            req.setResponseCode(http.OK)
            req.setHeader('Content-type', 'text/html')
            return "error writing to disk, not uploaded"
    def render_POST(self, req):
        uploaddir = self.default_uploaddir
        print "[UploadTextResource] req.args ", req.args
        if req.args["path"][0]:
            if os_path.isdir(req.args["path"][0]):
                uploaddir = req.args["path"][0]
                if uploaddir[-1] != "/":
                    uploaddir += "/"
            else:
                print "[UploadTextResource] not a dir", req.args["path"][0]
                req.setResponseCode(http.OK)
                req.setHeader("Content-type", "text/html")
                return "path '%s' to upload not existing!" % req.args["path"][0]

            if uploaddir[:10] == "/etc/opkg/" or uploaddir[:12] == "/usr/script/":
                pass
            else:
                req.setResponseCode(http.OK)
                req.setHeader("Content-type", "text/html")
                return "illegal upload directory: " + req.args["path"][0]

            data = req.args["text"][0].replace("\r\n", "\n")
        if not data:
            req.setResponseCode(http.OK)
            req.setHeader("Content-type", "text/html")
            return "filesize was 0, not uploaded"
        else:
            print "[UploadTextResource] text:", data

        filename = req.args["filename"][0]

        fd, fn = mkstemp(dir=uploaddir)
        cnt = os_write(fd, data)
        os_close(fd)
        os_chmod(fn, 0755)

        if cnt <= 0:  # well, actually we should check against len(data) but lets assume we fail big time or not at all
            try:
                os_unlink(fn)
            except OSError, oe:
                pass
            req.setResponseCode(http.OK)
            req.setHeader("Content-type", "text/html")
            return "error writing to disk, not uploaded"
    def render_POST(self, req):
        data = req.args['file'][0]
        print("[filename req.args]", req.args['filename'][0])
        filename = mbasename(req.args['filename'][0])
        print("[filename]", filename)
        if not filename.endswith(".ipk"):
            return self.res % (_("wrong filetype!"), _("Close"), _("Add"))

        if not data:
            req.setResponseCode(http.OK)
            return self.res % (_("filesize was 0, not uploaded"), _("Close"),
                               _("Add"))

        fd, fn = mkstemp(dir="/tmp/")
        cnt = os_write(fd, data)
        os_close(fd)
        os_chmod(fn, 0o755)

        if cnt <= 0:  # well, actually we should check against len(data) but lets assume we fail big time or not at all
            try:
                os_unlink(fn)
            except OSError as oe:
                pass
            req.setResponseCode(http.OK)
            return self.res % (_("error writing to disk, not uploaded"),
                               _("Close"), _("Add"))

        else:
            file = "/tmp/" + filename
            os_rename(fn, (file))
            if file is not None:
                out = os_popen("opkg install %s" % file)
                debug = ""
                for line in out:
                    debug += line
            else:
                return self.res % (_("error writing to disk, not uploaded"),
                                   _("Close"), _("Add"))

            req.setResponseCode(http.OK)
            return self.res % ((debug), _("Close"), _("Add"))
Beispiel #23
0
	def doServiceScan(self):
		self["scan_state"].setText(_('Scanning %s...') % (self.providerName))
		self["scan_progress"].setValue(0)
		self.scan = eFastScan(self.scanPid, self.providerName, self.transponderParameters, self.keepNumbers, self.keepSettings)
		self.scan.scanCompleted.get().append(self.scanCompleted)
		self.scan.scanProgress.get().append(self.scanProgress)
		fstfile = None
		fntfile = None
		for root, dirs, files in os_walk('/tmp/'):
			for f in files:
				if f.endswith('.bin'):
					if '_FST' in f:
						fstfile = os_path.join(root, f)
					elif '_FNT' in f:
						fntfile = os_path.join(root, f)
		if fstfile and fntfile:
			self.scan.startFile(fntfile, fstfile)
			os_unlink(fstfile)
			os_unlink(fntfile)
		else:
			self.scan.start(self.scanTuner)
Beispiel #24
0
	def doServiceScan(self):
		self["scan_state"].setText(_('Scanning %s...') % (self.providerName))
		self["scan_progress"].setValue(0)
		self.scan = eFastScan(self.scanPid, self.providerName, self.transponderParameters, self.keepNumbers, self.keepSettings)
		self.scan.scanCompleted.get().append(self.scanCompleted)
		self.scan.scanProgress.get().append(self.scanProgress)
		fstfile = None
		fntfile = None
		for root, dirs, files in os_walk('/tmp/'):
			for f in files:
				if f.endswith('.bin'):
					if '_FST' in f:
						fstfile = os_path.join(root, f)
					elif '_FNT' in f:
						fntfile = os_path.join(root, f)
		if fstfile and fntfile:
			self.scan.startFile(fntfile, fstfile)
			os_unlink(fstfile)
			os_unlink(fntfile)
		else:
			self.scan.start(self.scanTuner)
Beispiel #25
0
 def execBegin(self):
     self.text.setText(_("Scanning %s...") % (self.providerName))
     self.progressbar.setValue(0)
     self.scan = eFastScan(self.scanPid, self.providerName, self.keepNumbers, self.keepSettings)
     self.scan.scanCompleted.get().append(self.scanCompleted)
     self.scan.scanProgress.get().append(self.scanProgress)
     fstfile = None
     fntfile = None
     for root, dirs, files in os_walk("/tmp/"):
         for f in files:
             if f.endswith(".bin"):
                 if "_FST" in f:
                     fstfile = os_path.join(root, f)
                 elif "_FNT" in f:
                     fntfile = os_path.join(root, f)
     if fstfile and fntfile:
         self.scan.startFile(fntfile, fstfile)
         os_unlink(fstfile)
         os_unlink(fntfile)
     else:
         self.scan.start(self.scanTuner)
Beispiel #26
0
      def run(self):
         versions = get_versions(verbose=True)
         target_versionfile = versionfile_source
         print('UPDATING {}'.format(target_versionfile))
         os_unlink(target_versionfile)
         with open(target_versionfile, 'w') as f:
            f.write(SHORT_VERSION_PY % versions)

         _build_exe.run(self)
         os_unlink(target_versionfile)
         # noinspection PyTypeChecker
         with open(versionfile_source, 'w') as f:
            assert VCS is not None, 'please set versioneer.VCS'
            # noinspection PyPep8Naming
            LONG = LONG_VERSION_PY[VCS]
            f.write(LONG % {
               'DOLLAR': '$',
               'TAG_PREFIX': tag_prefix,
               'PARENTDIR_PREFIX': parentdir_prefix,
               'VERSIONFILE_SOURCE': versionfile_source,
            })
        def run(self):
            versions = get_versions(verbose=True)
            target_versionfile = versionfile_source
            print('UPDATING {}'.format(target_versionfile))
            os_unlink(target_versionfile)
            with open(target_versionfile, 'w') as f:
                f.write(SHORT_VERSION_PY % versions)

            _build_exe.run(self)
            os_unlink(target_versionfile)
            # noinspection PyTypeChecker
            with open(versionfile_source, 'w') as f:
                assert VCS is not None, 'please set versioneer.VCS'
                # noinspection PyPep8Naming
                LONG = LONG_VERSION_PY[VCS]
                f.write(
                    LONG % {
                        'DOLLAR': '$',
                        'TAG_PREFIX': tag_prefix,
                        'PARENTDIR_PREFIX': parentdir_prefix,
                        'VERSIONFILE_SOURCE': versionfile_source,
                    })
Beispiel #28
0
	def moveNextSuffBG(self, retval):
		if self.sufflst and not retval:
			fr = self.ele[2] + self.sufflst[0]
			to = self.ele[3] + self.sufflst[0]
			self.sufflst = self.sufflst[1:]
			print "Moving %s to %s" % (fr, to)
			if os_path.exists(fr):
				self.container.execute("/bin/cp", "/bin/cp", fr, to)
			else:
				self.moveNextSuffBG(0)
		elif retval:
			for suff in self.sufflst2:
				if os_path.exists(self.ele[3] + suff) and os_path.exists(self.ele[2] + suff):
					os_unlink(self.ele[3] + suff)
			mess = _("Failed to move the movie %s to %s in the background") % (self.ele[2], self.ele[3])
			self.message(self.ele[0], self.ele[1], None, mess)
			self.runDone(1)
		else:
			for suff in self.sufflst2:
				if os_path.exists(self.ele[2] + suff) and os_path.exists(self.ele[3] + suff):
					os_unlink(self.ele[2] + suff)
			mess = _("Successfully moved the movie %s") % (self.ele[2])
			self.message(self.ele[0], self.ele[1], None, mess)
			self.runDone(0)
class UploadResource(resource.Resource):
    default_uploaddir = "/tmp/"
    restricted_paths = frozenset(
        ("/bin/", "/boot/", "/dev/", "/etc/", "/lib/", "/proc/", "/sbin/",
         "/sys/", "/usr/", "/var/"))

    def out_POST(self, req, state, statetext, isXml):
        req.setResponseCode(http.OK)
        if isXml:
            req.setHeader('Content-type', 'application/xhtml+xml;')
            req.setHeader('charset', 'UTF-8')
            return """<?xml version="1.0" encoding="UTF-8" ?>
<e2simplexmlresult>
	<e2state>%s</e2state>
	<e2statetext>%s</e2statetext>
</e2simplexmlresult>""" % ('True' if state else 'False', statetext)
        else:
            req.setResponseCode(http.OK)
            req.setHeader('Content-type', 'text/html')
            return statetext

    def render_POST(self, req):
        isXml = 'xml' in req.args and req.args['xml'][0] == 'True'
        uploaddir = self.default_uploaddir
        if req.args['path'][0]:
            if os_path.isdir(req.args['path'][0]):
                uploaddir = req.args['path'][0]
                if uploaddir[-1] != "/":
                    uploaddir += "/"
            else:
                return self.out_POST(
                    req, False,
                    "path '%s' to upload not existing!" % req.args['path'][0],
                    isXml)

        data = req.args['file'][0]
        if not data:
            return self.out_POST(req, False, "filesize was 0, not uploaded",
                                 isXml)

        # allw to overwrite files (if the user requests it), but not in critical directories
        overwrite = 'overwrite' in req.args and req.args['overwrite'][
            0] == 'True'
        if overwrite and uploaddir in self.restricted_paths:
            overwrite = False

        try:
            matches = search('.*?filename="(.*?)"\r\n.*?',
                             req.content.getvalue())
            fn = os_path.join(uploaddir, matches.group(1))
        except Exception, e:
            fn = None

        # NOTE: we only accept the given filename if no such file exists yet or the user requested it AND we think its safe
        if fn and (overwrite or not os_path.exists(fn)):
            fd = os_open(fn, O_WRONLY | O_CREAT)
        else:
            fd, fn = mkstemp(dir=uploaddir)
        cnt = os_write(fd, data)
        os_close(fd)
        os_chmod(fn, 0755)

        if cnt <= 0:  # well, actually we should check against len(data) but lets assume we fail big time or not at all
            try:
                os_unlink(fn)
            except OSError, oe:
                pass
            return self.out_POST(req, False,
                                 "error writing to disk, not uploaded", isXml)
Beispiel #30
0
	def removeFile(self):
		if os_path.exists("/etc/rc3.d/S30rcsetup"):
			os_unlink("/etc/rc3.d/S30rcsetup")
Beispiel #31
0
	def removeFile(self):
		if os_path.exists("/etc/rc3.d/S30rcsetup"):
			os_unlink("/etc/rc3.d/S30rcsetup")
Beispiel #32
0
def unlink(_path):
    if is_dir(_path):
        return rmtree(_path)
    if is_file(_path):
        return os_unlink(_path)
Beispiel #33
0
    def render_POST(self, req):
        uploaddir = self.default_uploaddir
        print("[UploadTextResource] req.args ", req.args)
        if req.args['path'][0]:
            if os_path.isdir(req.args['path'][0]):
                uploaddir = req.args['path'][0]
                if uploaddir[-1] != "/":
                    uploaddir += "/"
            else:
                print("[UploadTextResource] not a dir", req.args['path'][0])
                req.setResponseCode(http.OK)
                req.setHeader('Content-type', 'text/html')
                return "path '%s' to upload not existing!" % req.args['path'][0]

            if uploaddir[:
                         10] == "/etc/opkg/" or uploaddir[:
                                                          12] == "/usr/script/":
                pass
            else:
                req.setResponseCode(http.OK)
                req.setHeader('Content-type', 'text/html')
                return "illegal upload directory: " + req.args['path'][0]

            data = req.args['text'][0].replace('\r\n', '\n')
        if not data:
            req.setResponseCode(http.OK)
            req.setHeader('Content-type', 'text/html')
            return "filesize was 0, not uploaded"
        else:
            print("[UploadTextResource] text:", data)

        filename = req.args['filename'][0]

        fd, fn = mkstemp(dir=uploaddir)
        cnt = os_write(fd, data)
        os_close(fd)
        os_chmod(fn, 0755)

        if cnt <= 0:  # well, actually we should check against len(data) but lets assume we fail big time or not at all
            try:
                os_unlink(fn)
            except OSError as oe:
                pass
            req.setResponseCode(http.OK)
            req.setHeader('Content-type', 'text/html')
            return "error writing to disk, not uploaded"
        else:
            file = uploaddir + filename
            os_rename(fn, file)
            return """
					<?xml version="1.0" encoding="UTF-8"?>
					<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
							"http://www.w3.org/TR/html4/loose.dtd">
					<html>

					<head>
					<meta content="text/html; charset=UTF-8" http-equiv="content-type">

					<link href="/web-data/tpl/default/style.min.css" type="text/css" rel="stylesheet">
					<link rel="shortcut icon" type="image/x-icon" href="/web-data/img/favicon.ico">
					</head>
					<body onunload="javascript:opener.location.reload()" >
						<hr>
						<p align="left">
						uploaded to %s
						</p>
						<hr>
						<form>
							<input type="button" value="%s" onClick="window.close();">
						</form>
					</body>
					</html>""" % (file, _("Close"))