def read_hosts_file(self): self.response = dict({"status": 0, "msg": None, "error": None}) try: with open(os.path.join(self.args['hosts_path'], self.name)) as f: print('You are viewing hosts file %s' % t.bold(self.name)) print('*' * 80) print(f.read()) f.close() print('*' * 80) msg = 'Enjoy hosts!' self.__set_response(0, msg) except OSError as e: error = 'Can\'t read hosts file %s' % t.bold(self.name) self.__set_response(-1, None, error)
def __overwrite(): question = '%s %s' % ('exists, do you want overwrite it?', t.underline('(yes/no)')) msg = '%s %s' % (t.bold(default), question) print(msg) choice = input() if str(choice).lower() == 'yes': shutil.copyfile(sys_hosts, hosts_filename) msg = '%s %s' % (t.bold(default), 'overwrited!') return self.__set_response(0, msg) elif str(choice).lower() == 'no': msg = msg = '%s %s' % (t.bold(default), 'not overwrited!') return self.__set_response(0, msg) else: print('Invalid choice. Retry') __overwrite()
def __copy_hosts_file(self): def __overwrite(): qmsg = '%s %s' % ('exists, do you want overwrite it?',t.underline('(yes/no)')) msg = '%s %s' % (t.bold(self.name), qmsg) print(msg) resp = input() if str(resp).lower() == 'yes': try: shutil.copyfile(origin_hosts_file, new_hosts_file) self.__set_title(new_hosts_file) msg = '%s %s' % (t.bold(self.name), 'overwrited!') self.__set_response(new_hosts_file, origin_hosts_file, msg=msg) except Exception as e: msg = '%s %s' % (t.bold(self.name), 'not overwrited!') self.__set_response(new_hosts_file, origin_hosts_file, msg=msg) elif str(resp).lower() == 'no': msg = '%s %s' % (t.bold(self.name), 'not overwrited!') self.__set_response(new_hosts_file, origin_hosts_file, msg=msg) else: print('Invalid choice. Retry') __overwrite() if self.origin != None: origin_hosts_file = os.path.join(self.args['hosts_path'],self.origin) if not os.path.exists(origin_hosts_file): error = 'Not found origin %s\nExit' % (t.bold(self.origin)) raise SystemExit(error) else: origin_hosts_file = hostswitcher.lib.hosts_path() new_hosts_file = os.path.join(self.args['hosts_path'],self.args['name'][0]) try: if os.path.exists(new_hosts_file) is True: return __overwrite() else: shutil.copyfile( origin_hosts_file, new_hosts_file ) msg = '%s %s' % (t.bold(self.name), 'created!') self.__set_title(new_hosts_file) self.__set_response(new_hosts_file, origin_hosts_file, msg=msg) except Exception as e: # self.log.warning(e) error = '%s %s' % (t.bold(self.name), 'not created!') self.__set_response(new_hosts_file, origin_hosts_file, -1, error=error)
def __set_file(self, origin=None): self.response = dict({"status": 0, "msg": None, "error": None}) try: hosts_file = os.path.join(self.args['hosts_path'], self.name) if os.path.exists(hosts_file): hostswitcher.lib.change_hosts(hosts_file) msg = '%s %s' % (t.bold(self.name), 'set!') return self.__set_response(0, msg) else: error = '%s %s' % (t.bold(self.name), 'not exists!') # self.log.warning(error) return self.__set_response(-1, error=error) except Exception as e: # self.log.warning(e) error = '%s %s' % (t.bold(self.name), 'not set!') return self.__set_response(-1, error=error)
def __ask_remove(): question = '%s %s%s%s' % ('Do you want remove', t.bold( self.name), '?', t.underline('(yes/no)')) print(question) choice = input() if str(choice).lower() == 'yes': try: os.remove(hosts_file) msg = '%s %s' % (t.bold(self.name), 'removed!') return self.__set_response(0, msg) except Exception as e: error = '%s %s' % (t.bold(self.name), 'not removed!') return self.__set_response(-1, error=error) elif str(choice).lower() == 'no': error = '%s %s' % (t.bold(self.name), 'not removed!') return self.__set_response(-1, error=error) else: print('Invalid choice. Retry') __ask_remove()
def __overwrite(): qmsg = '%s %s' % ('exists, do you want overwrite it?',t.underline('(yes/no)')) msg = '%s %s' % (t.bold(self.name), qmsg) print(msg) resp = input() if str(resp).lower() == 'yes': try: shutil.copyfile(origin_hosts_file, new_hosts_file) self.__set_title(new_hosts_file) msg = '%s %s' % (t.bold(self.name), 'overwrited!') self.__set_response(new_hosts_file, origin_hosts_file, msg=msg) except Exception as e: msg = '%s %s' % (t.bold(self.name), 'not overwrited!') self.__set_response(new_hosts_file, origin_hosts_file, msg=msg) elif str(resp).lower() == 'no': msg = '%s %s' % (t.bold(self.name), 'not overwrited!') self.__set_response(new_hosts_file, origin_hosts_file, msg=msg) else: print('Invalid choice. Retry') __overwrite()
def __edit_hosts_file(self): self.response = dict({ "hostsfile": self.name, "status": 0, "msg": None, "error": None }) try: hosts_file = os.path.join(self.args['hosts_path'], self.name) if os.path.exists(hosts_file): launch_editor(hosts_file) msg = 'Edit complete for %s!' % t.bold(self.name) return self.__set_response(0, msg) else: error = 'Can not edit %s!' % t.bold(self.name) return self.__set_response(-1, error=error) except Exception as e: self.log.warning(e) error = '%s %s' % ('Can\'t open file', t.bold(self.name)) return self.__set_response(status=-1, error=error)
def __remove_hosts_file(self): def __ask_remove(): question = '%s %s%s%s' % ('Do you want remove', t.bold( self.name), '?', t.underline('(yes/no)')) print(question) choice = input() if str(choice).lower() == 'yes': try: os.remove(hosts_file) msg = '%s %s' % (t.bold(self.name), 'removed!') return self.__set_response(0, msg) except Exception as e: error = '%s %s' % (t.bold(self.name), 'not removed!') return self.__set_response(-1, error=error) elif str(choice).lower() == 'no': error = '%s %s' % (t.bold(self.name), 'not removed!') return self.__set_response(-1, error=error) else: print('Invalid choice. Retry') __ask_remove() self.response = {"status": 0, "msg": None, "error": None} hosts_file = os.path.join(self.args['hosts_path'], self.name) if os.path.exists(hosts_file): if filecmp.cmp(hosts_file, hostswitcher.lib.hosts_path(), shallow=True) is False: try: __ask_remove() except Exception as e: self.log.error(e) else: error = 'You can\'t remove %s. Hosts file in use' % t.bold( self.name) self.__set_response(-1, error=error) else: error = 'Nothing to remove. File %s not exists' % t.bold(self.name) self.__set_response(-1, error=error)
def __overwrite(): qmsg = '%s %s' % ('exists, do you want overwrite it?', t.underline('(yes/no)')) msg = '%s %s' % (t.bold(self.name), qmsg) print(msg) resp = input() if str(resp).lower() == 'yes': try: with open(new_hosts_file, 'w') as f: f.write('#HOSTSWITCHER combined from: %s\n' % ','.join(self.origin)) f.writelines(hosts) f.close() msg = '%s %s' % (t.bold(self.name), 'writed!') self.__set_response(status=0, msg=msg) except Exception as e: error = '%s %s' % (t.bold(self.name), 'not writed!') self.__set_response(status=0, error=error) elif str(resp).lower() == 'no': error = '%s %s' % (t.bold(self.name), 'not overwrited!') self.__set_response(status=-1, error=error) else: print('Invalid choice. Retry') __overwrite()
def create_new_file(self): self.response = dict( { "newhosts": None, "origin": self.origin, "status": 0, "msg": None, "error": None } ) try: copy_result = self.__copy_hosts_file() hosts_file = os.path.join(self.args['hosts_path'],self.name) launch_editor(hosts_file) except Exception as e: self.log.warning(e) error = '%s %s' % (t.bold(self.name),'not created!') return self.__set_response(status=-1, error=error)
def __read_host_file(self, hostsfile): buffer = list() try: with open(os.join(self.args['hosts_path'], hostsfile), 'r') as f: buffer = f.readlines() f.close() except Exception as e: self.response['missing_origin'].append(hostsfile) error = 'Not found %s\nExit' % (t.bold(','.join( self.response['missing_origin']))) self.__set_response(status=-1, error=error) return list() hostsfile_data = list() for line in buffer: if (not line.startswith('#')) and (not line.startswith('\n')): hostsfile_data.append(line) return hostsfile_data
def copy_current_host_file(self): def __overwrite(): question = '%s %s' % ('exists, do you want overwrite it?', t.underline('(yes/no)')) msg = '%s %s' % (t.bold(default), question) print(msg) choice = input() if str(choice).lower() == 'yes': shutil.copyfile(sys_hosts, hosts_filename) msg = '%s %s' % (t.bold(default), 'overwrited!') return self.__set_response(0, msg) elif str(choice).lower() == 'no': msg = msg = '%s %s' % (t.bold(default), 'not overwrited!') return self.__set_response(0, msg) else: print('Invalid choice. Retry') __overwrite() self.response = dict({"status": 0, "msg": None, "error": None}) try: sys_hosts = self.sys_hosts_path default = self.file_name hosts_filename = os.path.join(self.args['hosts_path'], default) if os.path.exists(hosts_filename) is True: while True: return __overwrite() else: shutil.copyfile(sys_hosts, hosts_filename) msg = '%s created\nInit completed!' % t.bold(default) return self.__set_response(0, msg) except Exception as e: self.log.warning(e) error = '[ERROR] Init not completed!' return self.__set_response(-1, error=error)