Implement UI with PyInquirer
Delete unnecessary print statements Simplify plugin list access
This commit is contained in:
parent
ef16367a12
commit
7a05624f36
@ -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/")
|
||||||
|
Loading…
Reference in New Issue
Block a user