Implement UI with PyInquirer

Delete unnecessary print statements
Simplify plugin list access
This commit is contained in:
Lucas Noki 2019-12-22 03:59:38 +01:00 committed by Marcel Schwarz
parent ef16367a12
commit 7a05624f36

View File

@ -1,5 +1,6 @@
from AbstractModule import AbstractModule from AbstractModule import AbstractModule
from subprocess import call from subprocess import call
from PyInquirer import prompt
import os import os
import shutil import shutil
@ -7,36 +8,39 @@ import shutil
class VimModule(AbstractModule): class VimModule(AbstractModule):
def __init__(self): def __init__(self):
super().__init__() super().__init__()
self.plugins = {
"Colorschemes": "Plug 'https://github.com/rafi/awesome-vim-colorschemes.git'",
"Unix Operations": "Plug 'https://github.com/tpope/vim-eunuch.git'",
"Emmet": "Plug 'https://github.com/mattn/emmet-vim.git'",
"Meta5 Theme": "Plug 'https://github.com/christophermca/meta5.git'",
"Nerdtree": "Plug 'https://github.com/scrooloose/nerdtree'",
"Lightline": "Plug 'https://github.com/itchyny/lightline.vim'"
}
def do_module_selection(self):
mapped_list = []
for choice in self.plugins.keys():
mapped_list.append({
"name": choice
})
print("Available Plugins:")
module_selection = [
{
'type': 'checkbox',
'message': 'Select plugins',
'name': 'modules',
'choices': mapped_list
}
]
return prompt(module_selection)
def run(self): def run(self):
plugins = [ selected_modules = self.do_module_selection()['modules']
("1. Colorschemes", "Plug 'https://github.com/rafi/awesome-vim-colorschemes.git'"),
("2. Unix Operations", "Plug 'https://github.com/tpope/vim-eunuch.git'"),
("3. Emmet", "Plug 'https://github.com/mattn/emmet-vim.git'"),
("4. Meta5 Theme", "Plug 'https://github.com/christophermca/meta5.git'"),
("5. Nerdtree", "Plug 'https://github.com/scrooloose/nerdtree'"),
("6. Lightline", "Plug 'https://github.com/itchyny/lightline.vim'")
]
print("Available Plugins:\n")
for key in plugins:
print(key[0])
print("")
# Select Plugins
user_input = [int(userInput) for userInput in input("Select modules: ").split()]
clean_plugin_list = set(user_input)
# print out selected plugins # print out selected plugins
for element in clean_plugin_list: [print(x) for x in selected_modules]
selection = element - 1
try:
print(plugins[selection][0])
except Exception:
print("Fail")
# Create vimrc file # Create vimrc file
vimrc_exists = os.path.isfile("testfile") vimrc_exists = os.path.isfile("testfile")
@ -46,9 +50,8 @@ class VimModule(AbstractModule):
with open("testfile", "r") as vimrc_out_file: with open("testfile", "r") as vimrc_out_file:
for line in vimrc_out_file: for line in vimrc_out_file:
if line.startswith("call plug#begin('~/.vim/plugged')"): if line.startswith("call plug#begin('~/.vim/plugged')"):
for element in clean_plugin_list: for element in selected_modules:
selection = element - 1 line = line.strip() + "\n" + self.plugins[element] + "\n"
line = line.strip() + "\n" + plugins[selection][1] + "\n"
temp_file.write(line) temp_file.write(line)
temp_file.close() temp_file.close()
shutil.move('temp', 'testfile') shutil.move('temp', 'testfile')
@ -60,9 +63,8 @@ class VimModule(AbstractModule):
else: else:
with open("testfile", "w+") as vimrc_file: with open("testfile", "w+") as vimrc_file:
vimrc_file.write("\n" + "call plug#begin('~/.vim/plugged')\n") vimrc_file.write("\n" + "call plug#begin('~/.vim/plugged')\n")
for element in clean_plugin_list: for element in selected_modules:
selection = element - 1 vimrc_file.write(self.plugins[element] + "\n")
vimrc_file.write(plugins[selection][1] + "\n")
vimrc_file.write("call plug#end()\n") vimrc_file.write("call plug#end()\n")
vimdir_exists = os.path.isdir("/home/clay/Gitlab/linux-tools/testdirectory/") vimdir_exists = os.path.isdir("/home/clay/Gitlab/linux-tools/testdirectory/")