WorkspaceAutomation is a CLI tool designed to simplify and automate the process of setting up development workspaces. With this program, you can create, edit, delete, and manage customized workspaces, streamlining your daily workflow and boosting your productivity.
- Automated Workspace Creation: Automates the creation of a complete development environment with a single command.
- GitHub Integration: Publish any workspace as a GitHub repository on creation or later on.
- Application and URL Management: Save APPs and URLs associated with a workspace so they automatically open when reopening the workspace.
- Workspace Editing and Relocating: Easily modify workspace settings ot move it to another directory on your PC
- Project Importation: Import an existing project on your machine and transform it into a workspace.
- Pleasing CLI: If typing parameters for a command is not for you, you can always enter the parameters through our beautiful prompts.
You can download the installer for your Operating System in the releases tab.
It's preferable to download the latest version always for many reasons. Download it here.
If you're a python enjoyer πΏ you can install it with pip from pypi.org to your main python installation so you can use it automatically from the terminal.
For doing this, just open a terminal and run:
pip install WorkspaceAutomation
You can always download the source version either from latest release and build it yourself. To do so follow the next steps:
Download the Repo
- First go to the latest release on the releases page
- Scroll to the bottom and download the source.zip file
- Unzip the file where you desire
Install the dependencies
- Now make sure you're running on python 3.12.4 (run
python --version
) - Now run
python -m pip install -r requirements_dev.txt
Install app via pip
- Now run
python -m pip install -e .
- Your CLI app is now working and you can call it via command line whenever you want
- Create a new Workspace
- Open a Workspace
- Edit a Workspace
- Move a Workspace
- Import a project as a Workspace
- Publish a Workspace to GitHub
- Delete an exiting Workspace
There are additional commands, which are:
-v, --version
: Will display the current version of your WorkSpaceAutomation App.-h, --help
: Will display the help message of the App.--update
: Will update your program to the latest released version. (Only works if the app is installed as a python module)--uninstall
: Will uninstall the program, but this will not errase your WorkSpaces.
There is an additional flare which is:
-y, --yes
: Will stop confirmation prompts.-k, --key KEY
: Contains the password to encrypt/decrypt the API-KEY
This will only be run only one time, and the command will be:
Workspace-auto
+ -i
or --init
You can also specify optional parameters instead of using the CLI prompted form. The command will be able to use all of the next optional arguments:
--vscode VSCODE
: VSCODE being the VSCODE type--set-up-languages SET_UP_LANGUAGES
: SET_UP_LANGUAGES being the languages you will use.--custom-dir CUSTOM_DIR
: The main directory where the rest will be stored--create-directories
: A flare that determines if the directories will be created or selected.
--github-user GITHUB_USER
: Your GitHub username.--api-key API_KEY
: Your GitHub API-KEY.
There are two required flares at all times, and these are:
-c, --command COMMAND
: Contains the command to run
In order to create a new Workspace you will use the next command:
Workspace-auto -c create
You can also specify optional parameters instead of using the CLI prompted form. The command will be able to use all of the next optional arguments:
--name NAME
: To set the name of the WorkSpace--directory DIRECTORY
: To set where the WorkSpace will be located--language LANGUAGE
: To set the main language of the project--github
: Flare to use if you want to create a GitHub repo- If
--github
was used:--owner
: To set the owner of the repo--private
: Flare to use if want to create a private repo--license
: To set the license for the repo
In order to import a Workspace you will use the next command:
Workspace-auto -c import
You can also specify optional parameters instead of using the CLI prompted form. The command will be able to use all of the next optional arguments:
--name NAME
: To set the name of the WorkSpace--directory DIRECTORY
: Directory where the WorkSpace is located--github
: Flare to use if you want to create a GitHub repo- If
--github
was used:--owner
: To set the owner of the repo--private
: Flare to use if want to create a private repo--license
: To set the license for the repo
In order to import a Workspace you will use the next command:
Workspace-auto -c delete
You can also specify optional parameters instead of using the CLI prompted form. The command will be able to use all of the next optional arguments:
--name NAME
: To select by the name of the WorkSpace
In order to open a Workspace you will use the next command:
Workspace-auto -c open
You can also specify optional parameters instead of using the CLI prompted form. The command will be able to use all of the next optional arguments:
--name NAME
: To select by the name of the WorkSpace
In order to import a Workspace you will use the next command:
Workspace-auto -c publish
You can also specify optional parameters instead of using the CLI prompted form. The command will be able to use all of the next optional arguments:
--name NAME
: To select by the name of the WorkSpace--owner
: To set the owner of the repo--private
: Flare to use if want to create a private repo--license
: To set the license for the repo
In order to import a Workspace you will use the next command:
Workspace-auto -c edit
You can also specify optional parameters instead of using the CLI prompted form. The command will be able to use all of the next optional arguments:
--name NAME
: To select by the name of the WorkSpace--add-apps
: Flare to activate the app adding prompt form--del-apps
: Flare to activate the app deleting prompt form--add-urls
: Flare to activate the url adding prompt form--del-urls
: Flare to activate the url deleting prompt form
In order to import a Workspace you will use the next command:
Workspace-auto -c import
You can also specify optional parameters instead of using the CLI prompted form. The command will be able to use all of the next optional arguments:
--name NAME
: To select by the name of the WorkSpace--new-directory
: To set the new directory to move the WorkSpace to.
In order to reconfigure the app you will use the next command:
Workspace-auto -c config -sc SUBCOMMAND
Aviable SUBCOMMANDS are with they're respective optional arguments are:
-sc vscode --vscode VSCODE
: VSCODE being the VSCODE type-sc languages --set-up-languages SET_UP_LANGUAGES
: SET_UP_LANGUAGES being the languages you will use.-sc directories
which has two flares:--custom-dir CUSTOM_DIR
: The main directory where the rest will be stored--create-directories
: A flare that determines if the directories will be created or selected.
-sc github-user --github-user GITHUB_USER
: Your GitHub username.-sc api-key --api-key API_KEY
: Your GitHub API-KEY.
Im currently documenting the project and solving all known issues(0.1.0 following the convention of Mayor.Minor.Patch)
VERSION | INCLUDES |
---|---|
0.1.0 | First Version |
0.2.0 | Multilingual support |
0.3.0 | Up/Un for every installation type |
0.4.0 | Reestructure help message |
0.5.0 | Code Review and Refactoring |
1.0.0 | First Release Version |
Right now we have three main things in consideration for future updates for this Application, which are:
- URL/APP saving on the go, making it easier to manage your workspaces
- GitLab support
- Git interaction by doing commits, pushes, branches, releases on your workspace on the go.
- More editors support (like JetBrains IDE's and VisualStudio)
- Custom .gitignore adding all folders and files that are not usually wanted in your Repo's like tests or editor configurations.
- Notion support
- Multilingual support (May make the project collaborative)
Feel free to open Feature Requests issues to request things related to this concepts such popular IDE's, popular Git services with REST API's (API needed for being able to give support), unwanted types of files and folders generated by WorkSpace creations, etc.
The -y, --yes
flag is not working, I know that and I am going to bring a fix soon this week.
We are knowledgeable that theres no way to update and uninstall the program via CLI itself if its not installed as a python module, this is not an error, it's jut not implemented yet.
WorkspaceAutomation is distributed under the GPL v3.0+ license.
See the LICENSE file for more information.
You can support me and the project with a donation to my Ko-Fi