Future plans
parent
5df7d66df7
commit
ac5068b606
68
README.md
68
README.md
|
@ -1,2 +1,70 @@
|
|||
# Projects
|
||||
A tool for managing projects from the commandline.
|
||||
|
||||
## Future plan
|
||||
Config file containing all known projects and a way to retrieve their current files from somewhere (i.e. git, nfs, etc).
|
||||
Sync project status on selecting project.
|
||||
Run init-workspace script when loading project.
|
||||
Maybe yml config file for the project which defines tmux windows to open, scripts to run in them by default, etc.
|
||||
|
||||
|
||||
Example for a full stack web application workpace.yml file.
|
||||
```yaml
|
||||
windows:
|
||||
- type: Command
|
||||
command: "edit ."
|
||||
title: editor
|
||||
- type: Shell
|
||||
title: shell
|
||||
- type: Command
|
||||
command: "docker-compose up"
|
||||
title: database
|
||||
- type: Command
|
||||
command: "sass --watch scss:css"
|
||||
title: sass
|
||||
- type: Command
|
||||
command: "npm run dev"
|
||||
title: dev server
|
||||
```
|
||||
|
||||
This would open a tmux session with 5 windows (tabs) layed out and labeled as follows:
|
||||
`| 0: editor | 1: shell | 2: database | 3: sass | 4: dev server |`
|
||||
When the sesion is closed the program should ask to commit and push changes like the following:
|
||||
|
||||
+--------------------------+
|
||||
| * Commit |
|
||||
| Switch Branch & Commit |
|
||||
| Dont do anything |
|
||||
+--------------------------+
|
||||
|
||||
The star indicates the currently selected option.
|
||||
`Commit` runs git commit followed by git push if it succeeds.
|
||||
`Switch Branch & Commit` asks for a branch name and either switches or creates and switches to it. Then it does the same as `Commit`.
|
||||
`Dont do anything` exits.
|
||||
|
||||
When a project is opened it first asks to git pull like this:
|
||||
|
||||
+-- Git Pull --+
|
||||
| * Yes |
|
||||
| No |
|
||||
+--------------+
|
||||
|
||||
When yes is selected it will run git pull and then offer you a fzf prompt to switch branch before running the init stage. The default option would be the current branch.
|
||||
|
||||
Example projects.json:
|
||||
```json
|
||||
[
|
||||
{
|
||||
"name": "KNotes",
|
||||
"source": "git://git@git.kallestruik.nl:2022/kalle/KNotes"
|
||||
},
|
||||
{
|
||||
"name": "Projecs",
|
||||
"source": "git://git@git.kallestruik.nl:2022/kalle/Projects"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
Typing `projects open` would open a fzf session to select the project you want to open. This would open the `Git Pull` prompt if it already exists on the filesystem. If it does not it will set up a new directory for the project and git clone into that.
|
||||
It will then search for a `workspace.yml` in the project root. If it finds this it will set up the tmux session according to it. Otherwise it will open a tmux session with only one window. It will alo print a warning into this tmux session to inform
|
||||
the user that there is no `workspace.yml` file found.
|
||||
|
|
Loading…
Reference in New Issue