Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # coding: utf-8
- try:
- import sys, traceback
- from os import system, chdir, path, environ
- from tkinter import *
- from tkinter import filedialog
- except ImportError:
- print("\033[1;31mErro de importação, cheque os módulos descritos no arquivo README\n")
- class Janela():
- def __init__(self, master):
- frame_one = Frame()
- frame_one.pack(side=TOP, pady=5)
- frame_two = Frame()
- frame_two.pack(side=TOP, pady=5)
- frame_three = Frame()
- frame_three.pack(side=TOP, pady=5)
- frame_four = Frame()
- frame_four.pack(side=TOP, pady=5)
- frame_five = Frame()
- frame_five.pack(side=TOP, pady=5)
- frame_six = Frame()
- frame_six.pack(side=TOP, pady=5)
- frame_seven = Frame()
- frame_seven.pack(side=TOP, pady=5)
- frame_eight = Frame()
- frame_eight.pack(side=TOP, pady=5)
- #VERSAO
- version_lb = Label(frame_one, text="[*] Versão: ")
- version_lb.grid(column=0, row=0)
- self.version_entry = Entry(frame_one)
- self.version_entry.grid(column=1, row=0)
- #NOME
- name_lb = Label(frame_two, text="[*] Nome: ")
- name_lb.grid(column=1, row=1)
- self.name_entry = Entry(frame_two)
- self.name_entry.grid(column=2, row=1)
- #NOME GENÉRICO
- generic_name_lb = Label(frame_three, text="[*] Genérico: ")
- generic_name_lb.grid(column=2, row=2)
- self.generic_name_entry = Entry(frame_three)
- self.generic_name_entry.grid(column=3, row=2)
- #COMENTÁRIO
- comment_lb = Label(frame_four, text="[-] Comentário: ")
- comment_lb.grid(column=4, row=3)
- self.comment_entry = Entry(frame_four)
- self.comment_entry.grid(column=5, row=3)
- #LOCAL DE EXECUÇÃO
- execution_lb = Label(frame_five, text="[*] Execução: ")
- execution_lb.pack(side=LEFT)
- execution_text = StringVar()
- self.execution_entry = Entry(frame_five, textvariable=execution_text)
- self.execution_entry.pack(side=LEFT)
- execution_button = Button(frame_five, text="Abrir arquivo", command=self.conseguir_filename_exe)
- execution_button.pack(side=LEFT, padx=10)
- #ÍCONE
- icon_lb = Label(frame_six, text="[-] Ícone: ")
- icon_lb.pack(side=LEFT)
- self.icon_entry = Entry(frame_six)
- self.icon_entry.pack(side=LEFT)
- icon_button = Button(frame_six, text="Buscar ícone", command=self.conseguir_filename_ico)
- icon_button.pack(side=LEFT, padx=10)
- #CATEGORIA
- categories_lb = Label(frame_seven, text="[-] Categoria: ")
- categories_lb.pack(side=LEFT)
- self.categories_entry = Entry(frame_seven)
- self.categories_entry.pack(side=LEFT)
- #REUNINDO VARS
- version = self.version_entry.get()
- name = self.name_entry.get()
- generic_name = self.generic_name_entry.get()
- comment = self.comment_entry.get()
- execution = self.execution_entry.get()
- icon = self.icon_entry.get()
- categories = self.categories_entry.get()
- #CRIAR LANÇADOR
- criar_lanc = Button(frame_eight, text="Criar lançador", command=self.criar_lancador)
- criar_lanc.pack(side=LEFT)
- def conseguir_filename_exe(self, event=None):
- user = environ['HOME']
- filename = filedialog.askopenfilename(initialdir=user, title="Escolha um arquivo")
- self.execution_entry.delete(0, END)
- self.execution_entry.insert(0, filename)
- return filename
- def conseguir_filename_ico(self, event=None):
- filename = filedialog.askopenfilename(initialdir="/usr/share/icons/", filetypes =(("Imagem PNG", "*.png"),("All Files","*.*")), title="Escolha um arquivo")
- self.icon_entry.delete(0, END)
- self.icon_entry.insert(0, filename)
- return filename
- def criar_link_simbolico(self, caminho, nome):
- command = 'ln -s %s /usr/bin/%s' % (caminho, nome)
- system(command)
- if path.isfile('/usr/bin/' + nome):
- return "/usr/bin/"+nome
- else:
- return False
- def criar_lancador(self):
- name = self.name_entry.get()
- version = self.version_entry.get()
- icon = self.icon_entry.get()
- execution = self.execution_entry.get()
- categories = self.categories_entry.get()
- generic_name = self.generic_name_entry.get()
- print("\033[1;33mCriando lançador...\n")
- execution = self.criar_link_simbolico(execution, name)
- if execution:
- print("\033[1;32mLink simbólico criado com sucesso!\n")
- else:
- print("\033[1;31mLink simbólico não foi criado...\n")
- linhas_padrao = ('''
- [Deskop Entry]
- Version={}
- Name={}
- GenericName={}
- Exec={}
- Icon={}
- Type=Application
- Categories={}
- ''').format(version, name, generic_name, execution, icon, categories)
- print("\033[1;40mLinhas padrão: %s" % (linhas_padrao))
- chdir('/usr/share/applications')
- filename = name + '.desktop'
- launcher = open(filename, 'w')
- launcher.write(linhas_padrao)
- launcher.close()
- def checar_lancador(name):
- chdir('/usr/share/applications')
- filename = name + '.desktop'
- if path.isfile(filename):
- return True
- else:
- return False
- def main():
- print("\n\033[1;32mExecutando...\n")
- raiz = Tk()
- j1 = Janela(raiz)
- raiz.minsize(400, 300)
- raiz.title('Criar lançador')
- raiz.mainloop()
- try:
- main()
- except KeyboardInterrupt:
- print("\033[1;31mSaindo do programa, até mais...\n")
- except PermissionError:
- print("\033[1;31mErro de permissão. Logue como root e abra o programa.\n")
- except Exception:
- print("\033[1;31mA exceção foi %s\n" % (traceback.print_exc(file=sys.stdout)))
Advertisement
Add Comment
Please, Sign In to add comment