feat(init): Templates handling
This commit is contained in:
+14
-5
@@ -1,19 +1,28 @@
|
|||||||
import os
|
import os
|
||||||
|
import shutil
|
||||||
import commands.util.git as git
|
import commands.util.git as git
|
||||||
|
from commands.util.input_mgr import confirm
|
||||||
|
|
||||||
|
|
||||||
def init(force: bool = False):
|
def init(force: bool = False):
|
||||||
dir = os.getcwd()
|
dir = os.getcwd()
|
||||||
|
script_dir = os.path.dirname(os.path.realpath(__file__))
|
||||||
if force:
|
if force:
|
||||||
[os.remove(dir) for dir in os.listdir(dir)]
|
if confirm(False, "Do you really want to IRREVERSIBLY DELETE the contents of this folder and redo setup?"):
|
||||||
|
[os.remove(file) for file in os.listdir(dir)]
|
||||||
git.init(dir)
|
git.init(dir)
|
||||||
os.mkdir(dir + "/config")
|
os.mkdir(dir + "/config")
|
||||||
os.mkdir(dir + "/etc")
|
os.mkdir(dir + "/db")
|
||||||
with open(dir + "/config.yaml") as file:
|
os.mkdir(dir + "/system")
|
||||||
file.write("")
|
os.mkdir(dir + "/includes")
|
||||||
|
shutil.copy(script_dir + "/templates/config/config.yml", dir + "/config.yml")
|
||||||
|
shutil.copy(script_dir + "/templates/config/system/", dir + "/includes/system/")
|
||||||
|
shutil.copy(script_dir + "/templates/config/templates/", dir + "/includes/templates/")
|
||||||
|
shutil.copy(script_dir + "/templates/README.md", dir + "/README.md")
|
||||||
print("Initialized a new archmgr repository")
|
print("Initialized a new archmgr repository")
|
||||||
|
# TODO: For the files, store the permissions in a db
|
||||||
# TODO: Warn user to not delete .config/archmgr repo
|
# TODO: Warn user to not delete .config/archmgr repo
|
||||||
# TODO: Set up that repo (where to put it? /usr/share?)
|
# TODO: Set up that repo (where to put it? /usr/share?)
|
||||||
# TODO: Consider collecting function
|
# TODO: Consider collecting function -> If no files present, will only collect the pkgs, else also the files
|
||||||
# TODO: Config folder instead of single config file
|
# TODO: Config folder instead of single config file
|
||||||
# TODO: Also store the folder name of the config folder in that repo (needs to be easily changeable for user!)
|
# TODO: Also store the folder name of the config folder in that repo (needs to be easily changeable for user!)
|
||||||
|
|||||||
@@ -279,6 +279,25 @@
|
|||||||
"additionalProperties": false
|
"additionalProperties": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"symlinks": {
|
||||||
|
"type": "array",
|
||||||
|
"description": "Symlinks to create",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"destination": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The directory the link should point to",
|
||||||
|
"pattern": "^(^(~|\\.|\\.\\.)?\\/)?([\\w\\/.-]+(?!.*[^\\w\\/.-]+))"
|
||||||
|
},
|
||||||
|
"location": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "What to call the link",
|
||||||
|
"pattern": "^(^(~|\\.|\\.\\.)?\\/)?([\\w\\/.-]+(?!.*[^\\w\\/.-]+))"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"cmds": {
|
"cmds": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
# archmgr data folder
|
||||||
|
archmgr is a nixos-inspired package and config manager for Arch Linux.
|
||||||
|
To function, it needs both a configuration file (or multiple) and
|
||||||
Reference in New Issue
Block a user