forked from ungleich-public/cdist
		
	finish FileStringProperty
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
This commit is contained in:
		
					parent
					
						
							
								a1e1c8d665
							
						
					
				
			
			
				commit
				
					
						005009ab5d
					
				
			
		
					 1 changed files with 12 additions and 6 deletions
				
			
		| 
						 | 
					@ -271,9 +271,9 @@ class FileBooleanProperty(object):
 | 
				
			||||||
    def __delete__(self, obj):
 | 
					    def __delete__(self, obj):
 | 
				
			||||||
        raise AttributeError("can't delete attribute")
 | 
					        raise AttributeError("can't delete attribute")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# FIXME: should have same anchestor as FileList
 | 
					
 | 
				
			||||||
class FileStringProperty(object):
 | 
					class FileStringProperty(object):
 | 
				
			||||||
    """A string property which stores its state in a file.
 | 
					    """A string property which stores its value in a file.
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    def __init__(self, path):
 | 
					    def __init__(self, path):
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
| 
						 | 
					@ -307,15 +307,21 @@ class FileStringProperty(object):
 | 
				
			||||||
        value = ""
 | 
					        value = ""
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            with open(path, "r") as fd:
 | 
					            with open(path, "r") as fd:
 | 
				
			||||||
                value = fd.read().rstrip('\n')
 | 
					                value = fd.read()
 | 
				
			||||||
        except EnvironmentError:
 | 
					        except EnvironmentError:
 | 
				
			||||||
            pass
 | 
					            pass
 | 
				
			||||||
        return value
 | 
					        return value
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __set__(self, obj, value):
 | 
					    def __set__(self, obj, value):
 | 
				
			||||||
        path = self._get_path(obj)
 | 
					        path = self._get_path(obj)
 | 
				
			||||||
        with open(path, "w") as fd:
 | 
					        if value:
 | 
				
			||||||
            fd.write(str(value))
 | 
					            with open(path, "w") as fd:
 | 
				
			||||||
 | 
					                fd.write(str(value))
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            try:
 | 
				
			||||||
 | 
					                os.unlink(path)
 | 
				
			||||||
 | 
					            except EnvironmentError:
 | 
				
			||||||
 | 
					                pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __delete__(self, obj):
 | 
					    def __delete__(self, obj):
 | 
				
			||||||
        raise AttributeError("can't delete attribute")
 | 
					        raise AttributeError("Can't delete attribute. Set it's value to an empty string to remove the underlying file.")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue