Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/brocode/fw
workspace productivity booster
https://github.com/brocode/fw
automation cli developer-tools emacs-support git productivity projectmanager projects workspace
Last synced: about 1 month ago
JSON representation
workspace productivity booster
- Host: GitHub
- URL: https://github.com/brocode/fw
- Owner: brocode
- License: wtfpl
- Created: 2017-03-23T07:57:04.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-04-05T15:30:19.000Z (2 months ago)
- Last Synced: 2024-04-05T16:38:51.344Z (2 months ago)
- Topics: automation, cli, developer-tools, emacs-support, git, productivity, projectmanager, projects, workspace
- Language: Rust
- Homepage:
- Size: 3.95 MB
- Stars: 520
- Watchers: 5
- Forks: 23
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- awesome-rust - fw
- awesome-rust-zh - fw - 工作空间的生产力助推器[<img src="https://api.travis-ci.org/brocode/fw.svg?branch=master">](https://travis-ci.org/brocode/fw) (开发工具 / Web 服务器)
- awesome-rust - fw - ci.org/brocode/fw.svg?branch=master)](https://travis-ci.org/brocode/fw) (Development tools / Web Servers)
- awesome-rust - fw - ci.org/brocode/fw.svg?branch=master">](https://travis-ci.org/brocode/fw) (开发工具 Development tools / 网络服务端 Web Servers)
- awesome-rust - fw - ci.org/brocode/fw.svg?branch=master">](https://travis-ci.org/brocode/fw) (Development tools / Web Servers)
- awesome-rust-cn - fw - ci.org/brocode/fw.svg?branch=master">](https://travis-ci.org/brocode/fw) (Development tools / Web Servers)
- awesome-rust-cn - fw
- awesome-rust - fw - ci.org/brocode/fw.svg?branch=master)](https://travis-ci.org/brocode/fw) (Development tools / Web Servers)
- awesome - fw - workspace productivity booster (Rust)
- awesome-stars - brocode/fw - workspace productivity booster (projects)
README
![](./logo/fw_rgb.png)
# fw
[![](https://img.shields.io/crates/v/fw.svg)](https://crates.io/crates/fw)
[![](https://asciinema.org/a/222856.png)](https://asciinema.org/a/222856)
## Why fw?
With `fw` you have a configuration describing your workspace. It takes
care of cloning projects and can run commands across your entire
workspace. You can start working on any project quickly, even if it\'s
not in your flat structured workspace (better than `CDPATH`!). It also
\"sets up\" your environment when you start working on a project
(compile stuff, run `make`, activate `virtualenv` or `nvm`, fire up
`sbt` shell, etc.)[*Here\'s*]{.spurious-link target="doc/example_config"} an example
configuration that should be easy to grasp.The default configuration location is located under your system\'s
config directory as described
[here](https://docs.rs/dirs/3.0.2/dirs/fn.config_dir.html). That is :- Linux: `~/.config/fw`
- MacOS: `$HOME/Library/Application Support/fw`
- Windows: `{FOLDERID_RoamingAppData}\fw`The location and can be overridden by setting `FW_CONFIG_DIR`.
Per default projects are cloned into
`${settings.workspace}/${project.name}` but you can override that by
setting an `override_path` attribute as seen in the example
configuration.## What this is, and isn\'t
`fw` is a tool I wrote to do my bidding. It might not work for you if
your workflow differs a lot from mine or might require adjustments. Here
are the assumptions:- only git repositories
- only ssh clone (easily resolveable by putting more work in the git2
bindings usage)
- `ssh-agent` based authentication### If you can live with all of the above, you get:
- workspace persistence (I can `rm -rf` my entire workspace and have
it back in a few minutes)
- ZERO overhead project switching with the `workon` function (need to
activate `nvm`? Run `sbt`? Set LCD brightness to 100%? `fw` will do
all that for you)
- zsh completions on the project names for `workon`
- generate projectile configuration for all your project (no need to
`projectile-add-known-project` every time you clone some shit, it
will just work)## [Installation](doc/installation.md)
## [Usage](doc/usage.md)