Compare commits

...

239 Commits

Author SHA1 Message Date
68743a8742 Merge pull request #890 from cmderdev/development
Merge latest Development
2016-03-20 11:54:59 +00:00
73f9400aa8 Merge pull request #723 from cmderdev/release-1.3
Release 1.3
2016-03-20 11:54:28 +00:00
3ca847fc42 ⬆️ Git@2.7.4.windows.1
Changelog: https://github.com/git-for-windows/git/releases/tag/v2.7.4.windows.1
2016-03-18 18:20:06 +01:00
0de643be42 ⬆️ Git@2.7.2.windows.1
Changelog: https://github.com/git-for-windows/git/releases/tag/v2.7.3.windows.1
2016-03-17 03:33:09 +01:00
05c113efee Fix PSReadline clearing directory prompt.
If user has PSReadline and is using it be sure to clear 1 less line to prevent the directory prompt from being cleared.

Fixes #879
2016-03-10 10:50:37 +00:00
7d2197086e Merge pull request #866 from JanSchulz/revert_set_cmderstart
Revert "Set CMDER_START to homeprofile"
2016-03-10 10:46:04 +00:00
964f18c66c Merge pull request #874 from daxgames/process_profile.d_sooner
Process profile.d scripts before adding user aliases
2016-03-07 19:19:11 +01:00
01667a5bf0 Process profile.d scripts before adding user aliases 2016-03-07 08:12:50 -06:00
06c6e5fdb6 Merge pull request #873 from daxgames/echo_off
Prefer use of first line @echo off vs. @ per line to turn off echo pe…
2016-03-07 00:07:25 +01:00
0f4292aa08 Prefer use of first line @echo off vs. @ per line to turn off echo per line. - Cleaner file, no side efects 2016-03-06 15:40:06 -06:00
72876f41e2 Merge pull request #872 from daxgames/fix_bash_profile.d
silenced bash profile.d when profile.d is empty
2016-03-06 22:11:48 +01:00
722f8b7745 silenced bash profile.d when profile.d is empty 2016-03-06 15:05:40 -06:00
df768f3c5e Merge pull request #867 from daxgames/cmd_profile.d_fix
Various fixes for profile.d support
2016-03-05 02:21:46 +01:00
8dbbb902d9 fixed vendor\profile.ps1 profile.d - added post popd 2016-03-02 18:04:25 -06:00
d6eec2f3a5 silence profile.d if profile.d is empty 2016-03-02 17:37:28 -06:00
32c1d4028a added fully qualified path to cmd profile.d section 2016-03-02 15:17:43 -06:00
c904676cf4 Revert "Set CMDER_START to homeprofile"
This reverts commit 728e83a85b.

The problem with *always* setting CMDER_START is that this makes the
`-new_console:d:%USERPROFILE%` in the conemu task definitions unnecessary, as
this is now always overwritten as CMDER_START is set. This also means that a
very visible conemu UI for setting the startup dir does not work anymore which
might leave the user puzzled why.
2016-03-02 18:29:34 +01:00
a74fdd2b68 Merge pull request #860 from daxgames/fix_cmd_plugin.d
Fix cmd plugin.d
2016-03-02 04:04:30 +01:00
8a5c58e626 fixed cmd profile.d support 2016-03-01 20:35:55 -06:00
bf75f70181 added config/profile.d 2016-03-01 20:35:24 -06:00
8fa151d1db Merge pull request #740 from daxgames/cmder_exinit
Cmder exinit
2016-02-29 08:11:34 +00:00
33d6f11e87 Merge pull request #855 from daxgames/profile.d_support
Added profile.d like support for all supported shells
2016-02-29 08:11:31 +00:00
434d6f2996 Fixed profile.d table 2016-02-28 10:41:10 -06:00
59e4a1684b Merge branch 'development' of https://github.com/cmderdev/cmder into profile.d_support 2016-02-27 12:52:00 -06:00
361a8eae66 Fixed profile.d support for bash 2016-02-27 12:19:03 -06:00
727d6a6abd Added bits about MinGW integration status 2016-02-27 12:05:01 -06:00
f7a18d4b6e --amend 2016-02-27 12:00:40 -06:00
9e7f860e2d Fixed and added zsh shell capability 2016-02-27 08:43:39 -06:00
6cf62dcdc7 Added details on integrating external *nix like env 2016-02-27 07:42:22 -06:00
79f8560a24 added profile.d stuff 2016-02-27 07:40:47 -06:00
4245608e6d Merge branch 'development' of https://github.com/cmderdev/cmder into cmder_exinit 2016-02-27 06:41:11 -06:00
aedd078050 ⬆️ Git@2.7.2.windows.1 2016-02-27 01:39:06 +01:00
a959409c0f --amend 2016-02-25 18:22:43 -06:00
0a6b79b9ed Added profile.d like support for all supported shells 2016-02-25 08:01:16 -06:00
85ce629dde Merge pull request #852 from JanSchulz/patch-1
Typo in Readme.md
2016-02-23 16:25:23 +00:00
78ea063fb0 Typo in Readme.md 2016-02-23 16:45:07 +01:00
a99d27a7e1 Merge branch 'development' into cmder_exinit 2016-02-19 10:10:12 -06:00
289126f870 Merge pull request #837 from JanSchulz/appveyor_badge
Add appveyor batch to README
2016-02-19 09:56:55 +00:00
e1eed7a0f1 Merge pull request #831 from cmderdev/development
1.3 Pre-Release Merge
2016-02-19 09:56:47 +00:00
c3042909e0 Merge pull request #841 from gpakosz/clink-git-prompt
Fixed get_git_dir() to take submodules into account. Fixes #833
2016-02-16 11:31:09 +01:00
64d981e470 Fixed get_git_dir() to take submodules into account. Fixes #833 2016-02-16 11:15:42 +01:00
3fab0c122c Add appveyor batch to README
This is mainly to point people to newer builds of cmder and is therefore to be
merged into the master branch.
2016-02-13 18:43:46 +01:00
9ace64f6dc Merge pull request #835 from gpakosz/git-prompt-submodules
Fixed checkGit() in case of submodules
2016-02-10 15:42:40 +00:00
95bbb8edbb Fixed checkGit() in case of submodules
Since Git 1.7.8, submodules don't contain a .git/ folder anymore.
Instead, the submodule directory is populated with a .git text file
which contains a git-dir: /path/to/superproject/git_dir/modules/name.

See,
https://github.com/git/git/blob/master/Documentation/RelNotes/1.7.8.txt#L109-L114
2016-02-10 16:33:01 +01:00
842394300f Better defaults for window size.
Should now just be a 120x30 at the 500x500px position and saves size
and position on close.
2016-02-09 13:58:41 +00:00
26e6d80364 Build on tags
For releases.
2016-02-09 13:57:31 +00:00
728e83a85b Set CMDER_START to homeprofile
This is to set CMDER_START to home when no directory is given.

This is to ensure it is set even though it will default to the home
directory anyway.

It’ll allow users to use CMDER_START even if started without a path.
2016-02-09 13:40:32 +00:00
95f6096a45 Latest 3rd party updates. 2016-02-08 22:14:04 +00:00
fab895bd9b Undo. 2016-02-08 22:09:35 +00:00
b17db6930a Merge pull request #771 from cmderdev/development
Merge latest development
2016-02-08 19:58:54 +00:00
d97bc4ca69 Merge branch 'development' into release-1.3 2016-02-08 19:56:47 +00:00
914ddb8207 Merge pull request #804 from cmderdev/buildscriptchange
Fix build script not exiting on msbuild failure.
2016-02-08 18:41:27 +00:00
7962edac56 Merge pull request #803 from cmderdev/MartiUK-patch-1
Set tasks to always use CMDER_START
2016-02-08 18:41:09 +00:00
97cae2bdc7 Bring variable into line 2016-02-08 18:26:57 +00:00
6bb07d9b19 Revert "Set tasks to always user CMDER_START"
This reverts commit 4dc1249881.
2016-02-08 18:19:58 +00:00
fccba9269d ⬆️ ConEmu@160202
Changelog: https://conemu.github.io/en/Whats_New.html
2016-02-03 03:15:56 +01:00
07b426355e ⬆️ Git@2.7.0.windows.2
Changelog: https://github.com/git-for-windows/git/releases/tag/v2.7.0.windows.2
2016-02-03 03:13:43 +01:00
261b8bfce3 Merge pull request #794 from JanSchulz/793-clink-settings
Reorganize how clink settings are loaded
2016-02-01 08:45:29 +00:00
c055ce1c13 Get USER_PROFILE differently
USER_PROFILE is a known folder, so use that functionality to get it.
2016-01-31 21:35:57 +00:00
fe45b186e0 clink.lua: add header
Introduce a header like in the rest of the scripts that this file
is overwritten on updates and should not be modified.
2016-01-15 18:06:35 +01:00
788b5262b4 Reorganize how clink settings are loaded
4bfdf04d59 moved all clink config files
to vendor/ and therefore the files in config/ were not used and .history
was also moved to vendor/.

The new arrangement uses `--script` to load our own clink.lua file which in
turn as the first thing loads the original clink.lua file. The user defined
files are again in config/. As clink regenerates these files, if they are not
present, this also means that we don't need to include the settings file
in the git repo and therefore don't overwrite it on updates.
2016-01-15 18:02:10 +01:00
73e1eb2a8b Ensure Environment Variables are propagated. 2016-01-15 13:13:16 +00:00
fabcd468a7 Use the correct type and initialise it. 2016-01-15 13:01:55 +00:00
df7a662965 Get the environment variable correctly. 2016-01-15 12:44:10 +00:00
e7243efce2 Fix build script not exiting on msbuild failure. 2016-01-15 12:28:24 +00:00
9c7a037948 Set CMDER_START to USER_PROFILE if no path given. 2016-01-15 12:10:24 +00:00
4dc1249881 Set tasks to always user CMDER_START
CMDER_START should always be set as a result of either:
1. The user passes a directory to cmder.exe using `/START $DIR`
- or -
2. Sets CMDER_START as a default environment variable.
Fixes #772
2016-01-15 11:47:54 +00:00
5b7c008202 Merge pull request #798 from JanSchulz/cmder_here
Make "cmder here" work again
2016-01-15 11:44:39 +00:00
724b9a25da ⬆️ Bump clink to 0.4.7 2016-01-15 00:16:18 +01:00
2c0c6ed416 Make "cmder here" work again
The new system works by setting "CMDER_START" if a cmder.exe gets a
startup path. The rest is then implemented in the profile.ps1 and init.bat.
The new system works as follows:

1.If a startup path is given, cmder.exe sets this as `CMDER_START` and the
  startup scripts change to that directory.
2.If the usere sets a `CMDER_START` environment variable and this is not
  overwritten by cmder.exe, this variable is taken as the startup
  directory by the startup scripts.
3.If not such path is give, the conemu startup dirs is the winner, as the
  startup scripts don't change anything.
2016-01-11 22:19:10 +01:00
c77641cf03 ⬆️ Git@2.7.0.windows1
Changelog: https://github.com/git-for-windows/git/releases/tag/v2.7.0.windows.1
2016-01-07 01:50:52 +01:00
378014d5d4 Merge pull request #781 from vladimir-kotikov/patch-3
Bump clink to 0.4.6
2015-12-28 22:50:28 +01:00
1389fe0c4d ⬆️ Bump clink to 0.4.6 2015-12-29 00:23:30 +03:00
9eb9620966 Fixed som misc stuff and prevented multi runs 2015-12-16 12:37:40 -05:00
add52c0ee6 ⬆️ Git for Windows@2.6.4
Changelog: https://github.com/git-for-windows/git/releases/tag/v2.6.4.windows.1
2015-12-16 06:13:53 +01:00
744522b97b Merge pull request #773 from glureau/development
Fix vendor/init.bat when the PATH contains spaces.
2015-12-15 19:09:58 +00:00
6879a94c10 Fix vendor/init.bat when the PATH contains spaces. 2015-12-15 18:56:22 +01:00
41836e669b ⬆️ ConEmu@151210
Changelog: https://conemu.github.io/blog/2015/12/10/Build-151210.html
Skipped:
* https://conemu.github.io/blog/2015/12/08/Build-151208.html
* https://conemu.github.io/blog/2015/12/07/Build-151207.html
* https://conemu.github.io/blog/2015/12/05/Build-151205.html
* https://conemu.github.io/blog/2015/12/02/Build-151202.html
* https://conemu.github.io/blog/2015/11/29/Build-151129.html
2015-12-11 18:48:47 +01:00
4a4e48e04c Merge pull request #766 from vladimir-kotikov/patch-2
Bump clink-completions to 0.2.2
2015-12-10 20:56:41 +01:00
5f68e4e987 ⬆️ Bump clink-completions to 0.2.2 2015-12-10 22:09:12 +03:00
bdd0f38d59 Merge pull request #746 from daxgames/readme_updates
README.md Updates
2015-12-10 17:54:10 +01:00
6280416aed Merge pull request #756 from JanSchulz/extra_line_fix
Fix: don't garble the input line for long lines in git projects
2015-12-04 20:35:04 +01:00
567889e69f Fix: don't garble the input line for long lines in git projects
If having a long line of input in histroy, which went on into the
second row and using <up> to get back to it, you got the effect
that the input was split over three lines: "text, empty, text",
but using the arrows do move to the front of the first line was
moving the cursor in the second (empty) row. You could change
the text, but you needed to do it "in the dark".  No idea why
s/os.execute/is.popen/ fixes this, but it does.

Partly adresses https://github.com/cmderdev/cmder/issues/749
2015-12-04 19:57:08 +01:00
9a1d49bfc3 Merge pull request #427 from kodybrown/development
Added code to check for the existence of a customized ini file..
2015-12-04 13:04:21 +00:00
30dbfa6144 Merge pull request #736 from JanSchulz/more_config
More config
2015-12-04 13:04:13 +00:00
73f5cbdc7b README.md Updates 2015-11-28 11:12:25 -06:00
d0909f27e1 ⬆️ ConEmu@151129
Changelog: http://conemu.github.io/blog/2015/11/26/Build-151126.html
Skipped http://conemu.github.io/blog/2015/11/22/Build-151122.html
2015-11-28 02:45:05 +01:00
b88ea50aef Added vendor/cmder_exinit. Allows integrating externally installed Msys/Msys2/Cygwin into Cmder 2015-11-26 09:32:10 -06:00
46bad57ef8 Added config/aliases to .gitignore to account for recent changes in dev branch 2015-11-26 09:27:32 -06:00
3595d3e7fc Merge pull request #737 from JanSchulz/user-profile
Use consistent naming: user-profile.{sh|bat|ps1}
2015-11-25 10:01:18 +00:00
05c6f1c9cc Merge pull request #738 from daxgames/packignore_updates
added config\user-* to packignore
2015-11-25 10:00:12 +00:00
182d0c15a3 Merge pull request #731 from daxgames/fix_icons
Fix icons
2015-11-25 09:59:59 +00:00
867910ac9e added config\user-* to packignore 2015-11-24 19:08:58 -06:00
630ac0c571 reverted last change, removed config/user-* from packignore 2015-11-24 19:03:46 -06:00
105e381e66 Document the files in config 2015-11-25 00:31:17 +01:00
854cadb185 Use consistent naming: user-profile.{sh|bat|ps1} 2015-11-25 00:23:04 +01:00
4bfdf04d59 Do not overwrite cmder.lua on update 2015-11-25 00:14:35 +01:00
c9550490f5 Merge pull request #735 from JanSchulz/config_aliases
Do not overwrite aliases on update
2015-11-24 22:54:49 +00:00
85804d729e Merge pull request #734 from chase-miller/development
Added check for git install path in init.bat.
2015-11-24 22:43:15 +00:00
4154cdf204 Do not overwrite aliases on update 2015-11-24 23:38:26 +01:00
76e14cd268 Added check for %USERPROFILE%\AppData\Local\Programs\Git path in init.bat. Installing from https://git-scm.com/download/win seems to put git in this directory. 2015-11-24 17:26:41 -05:00
8601b0f940 added config/user-* to packignore 2015-11-24 16:06:39 -06:00
ce2a311c81 Merge branch 'development' of https://github.com/cmderdev/cmder into fix_icons 2015-11-24 14:54:40 -06:00
191316282a Get 100% supported Cmder task icons from icons\Cmder.ico so tabs have an ico if launched from the cmder.bat file 2015-11-24 14:52:13 -06:00
fd9c8a74b1 Added Git for Windows icon to mintty tasks to differentiate them from 100% supported Cmder tasks 2015-11-24 14:45:52 -06:00
519b9cabbb Merge pull request #729 from daxgames/fix_vim_alias
Fixed - Powershell vim/vim alias opening a new tab when editing a file
2015-11-24 18:21:03 +01:00
9b25544c05 Fixed - Powershell vim/vim alias opening a new tab when editin a file 2015-11-24 10:58:58 -06:00
a9b06459da Merge pull request #726 from daxgames/default_aliases
Added vi/vim aliases and fixed powershell startup errors
2015-11-24 09:26:02 +00:00
5eff672a4b Added lambda prompt for bash/mintty, matches cmder and powershell prompts 2015-11-23 22:13:33 -06:00
8566b6f6ca Added vi/vim aliases and fixed powershell startup errors 2015-11-23 19:10:22 -05:00
1af65edaec Merge pull request #702 from daxgames/msys_bash
Msys bash
2015-11-23 23:31:02 +00:00
e6d2394d48 Added some documentation to the README.md file 2015-11-23 18:20:15 -05:00
6d215f58c6 Merge pull request #673 from DoCode/development
Enable the '/single' switch (#577)
2015-11-20 10:50:44 +00:00
7e4912514f Merge pull request #722 from MartiUK/development
Update to conemu 151119
2015-11-20 10:50:02 +00:00
86edf3cbb0 Merge master into release-1.3
Resolved Conflicts:
	.gitignore
	README.md
2015-11-20 10:45:33 +00:00
a3e2d7546d Update to ConEmu 151119
Changelog: https://conemu.github.io/blog/2015/11/19/Build-151119.html
2015-11-20 10:29:32 +00:00
b9362b0a3d For PSV2.0 compat don't use $PSScriptRoot
As the build script must be executed from the `<projectroot>/scripts`
directory anyway we can assume `util.ps1` is as the same path as
`build.ps1` and just reference the current folder.
2015-11-19 14:18:47 +00:00
1046198648 Merge pull request #720 from MartiUK/development
Disable appveyor test search
2015-11-19 14:04:46 +00:00
908773622d Disable appveyor test search
We don't have tests.
2015-11-19 13:57:12 +00:00
deb23a21a1 Merge pull request #719 from MartiUK/development
Fix gitter webhook
2015-11-18 14:16:53 +00:00
1ec507c1d0 Fix gitter webhook
Should notify gitter of build success and failures.
2015-11-18 14:10:26 +00:00
1b159df7c2 Merge pull request #718 from MartiUK/development
Publish appveyor artefacts
2015-11-18 13:15:14 +00:00
2e582b9db9 Fix after_build script.
We are already in the scripts directory after build.
This prevents the ItemNotFoundException seen here:
https://ci.appveyor.com/project/MartiUK/cmder/build/1.0.79-development#64
2015-11-18 13:08:31 +00:00
f9b2c768b8 Package and upload artefacts on appveyor
Useful for PRs and releases.
2015-11-18 13:01:57 +00:00
4ce55d1019 Merge remote-tracking branch 'refs/remotes/cmderdev/development' into development 2015-11-18 12:06:10 +00:00
7f43014b68 pulled in upstream development branch 2015-11-14 12:15:42 -06:00
cf15dcffc7 Added/enhanced bash with cmder.sh/user-cmder.sh, organized tasks menu
added personal files to .gitignore so they never get uploaded to the repo and added support for msys2 bash in the new git for windows

added autocreate of config/user-cmder.sh if iot does not exist and added it to the .gitignore

Added tasks: cmd::Cmder, cmd::Cmder as Admin, bash::bash, bash::bash as Admin, bash::mintty, bash::mintty as admin, powershell::powershell, powershell::powershell as Admin. Set default task to cmd::Cmder.  Cot rid of init.bat running before /bin/bash, fixes double exit requirement

Added running git for windows post-install.bat on first cmder launch

fixed file/path not found  errors when launching powershell as admin

fixed file/path not found errors when launching bash/mintty as admin

fixed PATH in vendor/cmder.sh

Added sourcing ~/.bashrc if it exists.

changed .gitignore to ignore anything with path of config/user-*

removed my personal files from .gitignore, left in config/user-*

Make sure $CMDER_ROOT does not have a trailing '/'

%CMDER_ROOT% does not have trailing '\'. allow user to specify a conemu.xml on the command line

Removed '\' from %CMDER_ROOT%
2015-11-14 12:07:56 -06:00
10d0431242 Merge pull request #698 from daxgames/fix_batch_files
Fix batch files
2015-11-14 18:35:30 +01:00
eb5ab51573 Removed training '\' from %CMDER_ROOT% and added config/user-* to .gitignore 2015-11-14 11:14:14 -06:00
87bc4178e6 fix vim path in powershell profile 2015-11-12 15:18:21 +01:00
85aaa09d97 Merge pull request #705 from wenzowski/patch-1
add bundled vim to path
2015-11-12 13:52:53 +01:00
3a2d986c36 ⬆️ Git@v2.6.3.windows.1
Changelog: https://github.com/git-for-windows/git/releases/tag/v2.6.3.windows.1
2015-11-12 13:28:34 +01:00
37626e7687 ⬆️ ConEmu@151109
Changelog: http://conemu.github.io/blog/2015/11/09/Build-151109.html
We skipped http://conemu.github.io/blog/2015/11/01/Build-151101.html for no reason btw.
2015-11-12 13:25:49 +01:00
b018f2cc50 add bundled vim to path 2015-11-11 23:28:04 -05:00
ffd61db30e Merge pull request #697 from vladimir-kotikov/patch-2
Speed up git prompt filtering
2015-11-07 01:06:36 +01:00
53e03076da Speed up git prompt filtering
This increases performance of git prompt filter by fetching branch name directly from `.git/HEAD` file instead of spawning `git` process. Apart from increasing performance this may also solve potential problems with `git` output, as reported in https://github.com/cmderdev/cmder/issues/692
2015-11-07 02:44:43 +03:00
6e3b83460c Merge remote-tracking branch 'upstream/development' into development 2015-10-31 16:29:10 -06:00
3657795b35 Don't package the appveyor file 2015-10-27 07:24:19 +01:00
df37981707 ⬆️ ConEmu@v15.10.25
Changelog: http://conemu.github.io/blog/2015/10/25/Build-151025.html
2015-10-27 07:12:21 +01:00
669bc8bfa6 Update Readme 2015-10-25 03:00:37 +01:00
c2823af661 Merge pull request #676 from vladimir-kotikov/patch-1
Upgrade clink-completions to 0.2.1
2015-10-22 16:28:12 +01:00
66a75ce0dc ⬆️ Bump clink-completions to 0.2.1 2015-10-21 23:19:19 +03:00
15013369cb ⬆️ ConEmu@151015
Changelogs:
https://conemu.github.io/blog/2015/10/06/Build-151006.html
https://conemu.github.io/blog/2015/10/15/Build-151015.html
2015-10-21 21:24:42 +02:00
50c5742794 ⬆️ Git@2.6.2.windows.1 2015-10-21 21:21:54 +02:00
a57c11e171 Enable the '/single' switch by using the registry as statemachine for the current location ('CMDER_START')
Fixed issue #577
2015-10-20 16:49:08 +02:00
417051f496 Fix alt text on gitter link too 2015-10-16 13:35:34 +01:00
0f6441a7ee Update README.md
Update Gitter badge
2015-10-16 13:34:36 +01:00
5e07567a72 Pre-set tasks for the 9 number keys
Task macros ready for users who want to configure their own extra tasks
2015-10-16 13:09:58 +01:00
0f68e48a7b Merge pull request #665 from cmderdev/martiuk-dev
Build from behind proxy & appveyor
2015-10-16 11:02:33 +01:00
46fed27096 Build behind proxy and appveyor.
Fixes #79. Uses Download-File function from d654a53ec43038c42344f9cdbe0abc5b8ff9b387

Create appveyor.yml

Should send build notifications to gitter as well.

Adds appveyor build status badge.

Always compile launcher for AppVeyor

This is to catch any errors that may be caused by changes to the launcher or any outside scripts.
2015-10-16 10:54:43 +01:00
80bafd165f Merge pull request #667 from Pireax/posh-user-script-fix
Fixed problem with Invoke-Expression
2015-10-15 20:46:03 +02:00
1d47a98329 lambda was encoded with UTF-8 without BOM, didn't show properly 2015-10-15 19:57:05 +02:00
07180effac Fixed problem with Invoke-Expression 2015-10-15 19:56:38 +02:00
1e61b858c3 wipe the build dir clean before packing so leftovers don't end up in the release zips 2015-10-15 07:52:05 +02:00
7ebfffc9da Remove incorrect charater at start of line. 2015-10-14 19:24:54 +01:00
719d598048 Merge branch 'development' of github:cmderdev/cmder into development 2015-10-14 18:52:42 +01:00
5e56fbcf38 Merge branch 'development' of github:cmderdev/cmder into development 2015-10-14 18:50:51 +01:00
5a1aa7e25b add overwrite notice to posh profile, too 2015-10-14 19:50:49 +02:00
215ba574aa Merge pull request #666 from Pireax/posh-user-script
Add user startup file for powershell
2015-10-14 19:21:22 +02:00
45cdfc33f2 Remove the -full build switch. Add a compile example.
To get the functionality of -Full back just supply your own sources.json
with the vendors you wish.
Fix a typo and update the project url.
2015-10-14 18:19:08 +01:00
0ab9b74013 Add user startup file for powershell 2015-10-14 18:50:52 +02:00
f71a1f3903 Update packignore 2015-10-14 15:45:42 +02:00
fedcee011d fix vim path 2015-10-14 15:35:51 +02:00
1526bb631f Merge pull request #663 from JanSchulz/fix-startup-file-generation
Fix init.bat generation
2015-10-14 15:19:25 +02:00
27240995f4 Let developers without VS installed test build scripts
Developers can test the build process without needing to recompile a new
launcher exe. This saves some setup steps to get a new developer started.

Also warn that this build can't be release as by definition it can't be
fully tested.
2015-10-14 13:08:26 +01:00
b8f7bde353 Fix init.bat generation 2015-10-14 12:48:14 +02:00
0051614e4b Update packignore 2015-10-14 05:13:13 +02:00
d6b54eec24 Merge pull request #612 from JanSchulz/user-startup
Add a user startup file which can be modified
2015-10-13 18:12:27 +02:00
052ab118e2 Merge pull request #398 from mikesigs/development
Handle quoted paths
2015-10-13 17:52:12 +02:00
c46eb6a525 Merge remote-tracking branch 'upstream/development' into development
Conflicts:
	bin/alias.bat
2015-10-12 21:32:33 -06:00
48259b87ac Add a user startup file which can be modified
Up to now, init.bat would be overwritten when a user updated
Cmder. The new mechanism will create a new (mostly empty) file
for the user to enter commands which will then be executed on
each following startup.
2015-10-12 15:15:33 +02:00
2a26026749 Update README.md
Update Gitter badge
2015-10-12 14:30:04 +02:00
d68816bd11 Update readme 2015-10-12 13:29:47 +02:00
419c785db5 Merge pull request #575 from Bobo1239/enhance-path
Enhance Path in profile.ps1
2015-10-12 13:24:07 +02:00
c15e3f4ebd Merge pull request #585 from Stanzilla/revert_powershell
Revert "Run PowerShell as default"
2015-10-12 13:23:43 +02:00
1f75f85b7c Merge pull request #605 from Stanzilla/bumpgit
Converting msysgit support to git-for-windows support.
2015-10-12 13:23:06 +02:00
4203a8a4ea Merge pull request #653 from vladimir-kotikov/development
Upgrade clink-completions to 0.2.0
2015-10-12 13:11:44 +02:00
cf8a992e37 Merge pull request #601 from Stanzilla/bump_conemu
⬆️ ConEmu@150816
2015-10-12 13:10:23 +02:00
cec7fa3398 Merge eec3fd5578 2015-10-12 13:08:16 +02:00
83c685cdc7 ⬆️ ConEmu to v15.09.13 2015-10-12 13:06:50 +02:00
24fd027cda Update ConEmo project URL 2015-10-12 13:06:50 +02:00
df259195ab ⬆️ ConEmu@150816 2015-10-12 13:06:50 +02:00
20b8b09419 Add -ExecutionPolicy Bypass to the powershell tasks
Fix issue #483
2015-10-12 13:02:43 +02:00
7bc71010c2 Update .gitignore 2015-10-12 13:02:30 +02:00
e5eadc766f Merge pull request #543 from malobre/patch-1
Add  `-ExecutionPolicy Bypass` to powershell tasks
2015-10-12 12:53:36 +02:00
f638e93c21 Merge pull request #548 from thomgit/master
Update .gitignore
2015-10-12 12:53:12 +02:00
6608e16c3b Merge pull request #634 from Stanzilla/revert_cleanupgit
Revert 8b8f98c
2015-10-12 12:52:39 +02:00
d979140bb5 Merge pull request #569 from eeree/issue_568
Fixed: 'Enable-GitColors is Obsolete...' warning
2015-10-12 12:52:08 +02:00
568e2cfcdd Merge pull request #600 from Maximus5/br-xml-location
Use standard path for ConEmu.xml
2015-10-12 12:50:28 +02:00
a9ee246241 Merge pull request #606 from pyprism/patch-1
New URL to ConEmu now hosted on github.
2015-10-07 13:01:34 +01:00
d4ee65405d Merge pull request #651 from jkingsman/typos-phrasing
Fix typos and better phrasing.
2015-10-07 13:00:06 +01:00
3c1aa08313 Merge pull request #652 from jkingsman/patch-2
Make wording clearer
2015-10-07 12:58:22 +01:00
36291ab789 ⬆️ Git for Windows to v2.6.1.windows.1 2015-10-06 21:16:32 +02:00
73c8c0c233 Upgrade clink-completions 2015-10-06 21:45:32 +03:00
61a9b83c42 Make wording clearer 2015-10-02 19:06:18 -07:00
5bcddd6b44 fix typos and better phrasing 2015-10-02 18:58:55 -07:00
32cd7dcb58 ⬆️ Git to v2.6.0.windows.1 2015-09-30 20:35:13 +02:00
b40b0067c0 ⬆️ Git to v2.5.3.windows.1 2015-09-23 20:51:53 +02:00
4edec1675a update to 2.5.2 release 2 2015-09-16 06:18:29 +02:00
4ed35fe110 Revert 8b8f98c
Breaks Git: #503 #521, because git <command> actually uses git-<command>.
2015-09-11 23:51:10 +02:00
583109b695 update to 2.5.2 2015-09-11 22:53:21 +02:00
f783cd8add fix readme 2015-09-05 00:04:51 +02:00
6952d602d2 update to 2.5.1
https://github.com/git-for-windows/git/releases/tag/v2.5.1.windows.1
2015-09-02 19:50:44 +02:00
eec3fd5578 Backup and restore ConEmu.xml on ./build.ps1 2015-09-01 20:09:17 +03:00
7c907a5174 Use standard path for ConEmu.xml 2015-09-01 20:09:17 +03:00
30f7847852 Merge pull request #619 from Stanzilla/bump_clink
Update clink to 0.4.5
2015-09-01 13:10:54 +01:00
801a4ac901 update readme 2015-08-31 05:05:16 +02:00
143e659187 ⬆️ clink to 0.4.5 2015-08-31 04:48:46 +02:00
7fd43b939b delete our own, now obsolete agent launcher 2015-08-31 04:40:10 +02:00
5ce077a74a call git's own ssh-agent script instead of our own 2015-08-28 02:53:49 +02:00
fc85915b2c git 2.5 packages the unix commands in <git>/usr/bin instead of <git>/binso add that to the path, too. 2015-08-28 02:47:02 +02:00
63d35a9760 Update README.md 2015-08-24 06:38:11 +06:00
373a58e1e6 forgot one 2015-08-23 20:21:45 +02:00
3e06fcbf07 First step at converting msysgit support to git-for-windows support. 2015-08-23 20:09:06 +02:00
ea1edda966 Merge remote-tracking branch 'bliker/development' into development 2015-08-18 23:56:11 +01:00
2857e4d6bc Merge remote-tracking branch 'bliker/master' into development 2015-08-18 23:55:44 +01:00
ecbf7a01d1 Revert "Run PowerShell as default"
This reverts commit aaf70a4d9f.
2015-08-09 14:16:24 +02:00
dc9263a11c Merge pull request #578 from Stanzilla/development
update VS to 2015 release version and switch to /MT for static linking
2015-08-04 14:55:02 +01:00
8659b9c6ed update VS to 2015 release version and switch to /MT for static linking 2015-08-04 15:00:32 +02:00
316a42b8f9 Enhance Path in profile.ps1 2015-08-03 16:06:41 +02:00
676297c0d4 Fixed: 'Enable-GitColors is Obsolete...' warning 2015-07-31 21:45:32 +02:00
3aff065210 Update .gitignore 2015-07-09 11:42:53 +05:30
f6a0447a9a Add -ExecutionPolicy Bypass to the powershell tasks
Fix issue #483
2015-07-01 12:55:20 +02:00
70b0615b34 Merge pull request #517 from bondz/patch-1
Remove depreciated Enable-GitColors in posh-git
2015-06-05 12:02:50 +01:00
2a1a736ceb Remove depreciated Enable-GitColors
The function Enable-GitColors is depreciated in dahlbyk/posh-git@4e778e2480 and should be removed here as well.
2015-06-04 23:25:09 +01:00
40fd96b135 Remove leftover history.
This is not needed and confuses users.
2015-05-20 10:55:17 +01:00
271b3ea876 Avoid commiting the wrong dlls 2015-05-19 18:37:34 +01:00
c4873c6e58 Revert "Update to VS2015."
This reverts commit 53efab127e.
2015-05-19 15:48:04 +01:00
29d1378d7a Add git to PATH (while in Cmder)
Add bundled git to PATH if we can't find git on PATH.
2015-05-19 15:47:06 +01:00
c15e29ecb3 $PSScriptRoot compatibility
$PSScriptRoot is not available on PS version 2 or below.

So we'll set it ourselves.
2015-05-19 15:44:32 +01:00
c38f6b3a89 Merge branch 'master' into development 2015-05-17 23:45:07 +01:00
99ea376713 v1.2 2015-05-17 23:44:51 +01:00
2051078cc6 Merge pull request #479 from bliker/development
Fix cleanup script.
2015-05-17 23:21:23 +01:00
6c5034164c Fix cleanup script. 2015-05-17 22:42:00 +01:00
696a0d7622 Merge branch 'development' of https://github.com/MartiUK/cmder into development 2015-04-30 11:49:25 +01:00
a5968d3d49 Merge pull request #2 from bliker/development
Run PowerShell as default
2015-03-26 10:21:54 +00:00
1cea2c3278 Merge remote-tracking branch 'upstream/development' into development 2015-03-17 14:42:03 -06:00
187156487e Added code to check for the existence of a customized ini file named ConEmu-%COMPUTERNAME%.ini, before checking for the standard ini file ConEmu.ini. 2015-03-17 14:39:27 -06:00
0311e129ca Handle quoted paths
I was annoyed at having to use short paths all the time in my aliases. It wasn't until I found a command that actually refused to work with a shortpath (running iisexpress.exe) I was determined to find a solution. 

It appears that the reason the quoted paths weren't working was due to the ::validate alias stuff. The for command would stumble on a quoted path, arguing that /foo was unexpected...

The additions on lines 7-8 wrap the input in quotes and then strip the inner quotes. This variable is used in the for loop (instead of %*) for validating the alias. So long as the alias is valid (contains no spaces) then the existing method of appending the new alias to the aliases file works just fine because it still uses %*.
2015-02-22 23:48:33 -06:00
24 changed files with 883 additions and 276 deletions

5
.gitignore vendored
View File

@ -8,5 +8,10 @@ vendor/*/*
config/.history
Thumbs.db
*.exe
*.dll
build/
Version v*
*.bak
config/user-*
config/aliases
config/profile.d

View File

@ -1,3 +1,11 @@
@echo off
SET CMDER_ROOT=%~dp0
start %~dp0/vendor/conemu-maximus5/ConEmu.exe /Icon "%CMDER_ROOT%\icons\cmder.ico" /Title Cmder /LoadCfgFile "%CMDER_ROOT%\config\ConEmu.xml"
:: Remove trailing '\'
@if "%CMDER_ROOT:~-1%" == "\" SET CMDER_ROOT=%CMDER_ROOT:~0,-1%
if exist "%~1" (
start %~dp0/vendor/conemu-maximus5/ConEmu.exe /Icon "%CMDER_ROOT%\icons\cmder.ico" /Title Cmder /LoadCfgFile "%~1"
) else (
start %~dp0/vendor/conemu-maximus5/ConEmu.exe /Icon "%CMDER_ROOT%\icons\cmder.ico" /Title Cmder /LoadCfgFile "%CMDER_ROOT%\config\ConEmu.xml"
)

150
README.md
View File

@ -1,35 +1,33 @@
# Cmder
[![Join the chat at https://gitter.im/bliker/cmder](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/bliker/cmder?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Join the chat at https://gitter.im/cmderdev/cmder](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/cmderdev/cmder?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
Latest release is **[v1.1.4.1](https://github.com/bliker/cmder/releases/tag/v1.1.4.1)**
![Build Status](https://ci.appveyor.com/api/projects/status/32r7s2skrgm9ubva?retina=true)
Cmder is a **software package** created out of pure frustration over absence of usable console emulator on Windows. It is based on [ConEmu](https://code.google.com/p/conemu-maximus5/) with *major* config overhaul. Monokai color scheme, amazing [clink](https://github.com/mridgers/clink) and custom prompt layout.
Cmder is a **software package** created out of pure frustration over absence of usable console emulator on Windows. It is based on [ConEmu](https://conemu.github.io/) with *major* config overhaul, comes with a Monokai color scheme, amazing [clink](https://github.com/mridgers/clink) (further enhanced by [clink-completions](https://github.com/vladimir-kotikov/clink-completions)) and a custom prompt layout.
![Cmder Screenshot](http://i.imgur.com/g1nNf0I.png)
## Why use it
The main advantage of Cmder is portability. It is designed to be totally self-contained with no external dependencies, that is makes it great for **USB Sticks** or **Dropbox**. So you can carry your console, aliases and binaries (like wget, curl and git) with you anywhere.
The main advantage of Cmder is portability. It is designed to be totally self-contained with no external dependencies, which makes it great for **USB Sticks** or **cloud storage**. So you can carry your console, aliases and binaries (like wget, curl and git) with you anywhere.
## Installation
1. Download the latest release
1. Extract
1. (optional) Place your own executable files into the `bin` folder to be injected into your PATH.
1. Run cmder
*(There will be a version with installer)*
1. Download the [latest release](https://github.com/cmderdev/cmder/releases/)
2. Extract
3. (optional) Place your own executable files into the `bin` folder to be injected into your PATH.
4. Run Cmder
## Integration
So you've experimented with cmder a little and want to give it a shot in a more permanent home;
So you've experimented with Cmder a little and want to give it a shot in a more permanent home;
### Shortcut to open Cmder in a chosen folder
1. Open a terminal as an Administrator
2. Navigate to the directory you have placed Cmder
3. Execute `.\cmder.exe /REGISTER ALL`
3. Execute `.\cmder.exe /REGISTER ALL`
_If you get a message "Access Denied" ensure you are executing the command in an **Administrator** prompt._
In a file explorer window right click in or on a directory to see "Cmder Here" in the context menu.
@ -38,43 +36,131 @@ In a file explorer window right click in or on a directory to see "Cmder Here" i
### Tab manipulation
* `Ctrl + t` : new tab dialog (maybe you want to open cmd as admin?)
* `Ctrl + w` : close tab
* `Ctrl + d` : close tab (if pressed on empty command)
* `Shift + alt + number` : fast new tab: `1` - CMD, `2` - Powershell `*` - More to come
* `Alt + enter`: Fullscreen
* <kbd>Ctrl</kbd> + <kbd>T</kbd> : New tab dialog (maybe you want to open cmd as admin?)
* <kbd>Ctrl</kbd> + <kbd>W</kbd> : Close tab
* <kbd>Ctrl</kbd> + <kbd>D</kbd> : Close tab (if pressed on empty command)
* <kbd>Shift</kbd> + <kbd>Alt</kbd> + <kbd>#Number</kbd> : Fast new tab: <kbd>1</kbd> - CMD, <kbd>2</kbd> - PowerShell
* <kbd>Alt</kbd> + <kbd>Enter</kbd>: Fullscreen
### Shell
* `Shift + Up` : Traverse up in directory structure (lovely feature!)
* `End, Home, Ctrl` : Traversing text with as usual on Windows
* `Ctrl + r` : History search
* `Shift + mouse` : Select and copy text from buffer
* <kbd>Shift</kbd> + <kbd>Up</kbd> : Traverse up in directory structure (lovely feature!)
* <kbd>End</kbd>, <kbd>Home</kbd>, <kbd>Ctrl</kbd> : Traversing text with as usual on Windows
* <kbd>Ctrl</kbd> + <kbd>R</kbd> : History search
* <kbd>Shift</kbd> + Mouse : Select and copy text from buffer
(Some shortcuts are not yet documented, thought they exist, please add them here)
(Some shortcuts are not yet documented, though they exist - please document them here)
## Features
### Access to multiple shells in one window using tabs
You can open multiple tabs each containing one of the following shells:
|Task|Shell|Description|
|----|-----|-----------|
|Cmder|cmd.exe|Windows 'cmd.exe' shell enhanced with Git, Git aware prompt, Clink(GNU Readline), and Aliases.|
|Cmder as Admin|cmd.exe|Administrative Windows 'cmd.exe' Cmder shell.|
|Powershell|powershell.exe|Windows Powershell enhanced with Git and Git aware prompt .|
|Powershell as Admin|powershell.exe|Administrative Windows 'powerhell.exe' Cmder shell.|
|Bash|bash.exe|Unix/Linux like bash shell running on Windows.|
|Bash as Admin|bash.exe|Administrative Unix/Linux like bash shell running on Windows.|
|Mintty|bash.exe|Unix/Linux like bash shell running on Windows. See below for Mintty configuration differences|
|Mintty as Admin|bash.exe|Administrative Unix/Linux like bash shell running on Windows. See below for Mintty configuration differences|
Cmder, Powershell, and Bash tabs all run on top of the Windows Console API and work as you might expect in Cmder with access to use ConEmu's color schemes, key bindings and other settings defined in the ConEmu Settings dialog.
Mintty tabs use a program called 'mintty' as the terminal that is not based on the Windows Console API so some differences in functionality are normal, as a result mintty specific config is done via the '[%USERPROFILE%|$HOME]/.minttyrc' file.
Mintty differs from the other tabs in that it supports xterm/xterm-256color TERM types, and does not work with ConEmu settings like color schemes and key bindings. For more on Mintty and its config click [here](https://code.google.com/p/mintty/).
An example of setting Cmder portable terminal colors for mintty:
From a bash/mintty shell:
```
cd $CMDER_ROOT/vendor
git clone https://github.com/karlin/mintty-colors-solarized.git
cd mintty-colors-solarized/
echo source \$CMDER_ROOT/vendor/mintty-colors-solarized/mintty-solarized-dark.sh>>$CMDER_ROOT/config/user-profile.sh
```
### Cmder Portable Shell User Config
User specific configuration is possible using the cmder specific shell config files. Edit the below files to add your own configuration:
|Shell|Cmder Portable User Config|
| ------------- |:-------------:|
|Cmder|%CMDER_ROOT%\config\user-profile.cmd|
|Powershell|$ENV:CMDER_ROOT\config\user-profile.ps1|
|Bash/Mintty|$CMDER_ROOT/config/user-profile.sh|
Note: Bash and Mintty sessions will also source the '$HOME/.bashrc' file it it exists after it sources '$CMDER_ROOT/config/user-profile.sh'.
### Linux like 'profile.d' support for all supported shell types.
You can write *.cmd|*.bat, *.ps1, and *.sh scripts and just drop them in the %CMDER_ROOT%\config\profile.d folder to add startup config to Cmder.
|Shell|Cmder 'Profile.d' Scripts|
| ------------- |:-------------:|
|Cmder|%CMDER_ROOT%\config\profile.d\\*.bat and *.cmd|
|Powershell|$ENV:CMDER_ROOT\config\profile.d\\*.ps1|
|Bash/Mintty|$CMDER_ROOT/config/profile.d/*.sh|
### Aliases
You can define simple aliases with command `alias name=command`.
#### Cmder(Cmd.exe) Aliases
You can define simple aliases for `cmd.exe` sessions with a command like `alias name=command`. Cmd.exe aliases support optional parameters through the `$1-9` or the `$*` special characters so the alias `vi=vim.exe $*` typed as `vi [filename]` will open `[filename]` in `vim.exe`.
For example there is one defined for you `alias e.=explorer .`
Cmd.exe aliases can also be more complex. See: [DOSKEY.EXE documentation](http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/doskey.mspx?mfr=true) for additional details on complex aliases/macros for 'cmd.exe'
All aliases will be saved in `/config/aliases` file
Aliases defined using the `alias.bat` command will automatically be saved in the `%CMDER_ROOT%\config\aliases` file
#### Bash.exe|Mintty.exe Aliases
Bash shells support simple and complex aliases with optional parameters natively so they work a little different. Typing `alias name=command` will create an alias only for the current running session. To make an alias permanent add it to either your `$CMDER_ROOT/config/user-profile.sh` or your `$HOME/.bashrc`.
If you add bash aliases to `$CMDER_ROOT/config/user-profile.sh` they will portable and follow your Cmder folder if you copy it to another machine. `$HOME/.bashrc` defined aliases are not portable.
#### Powershell.exe Aliases
Powershell has native simple alias support, for example `[new-alias | set-alias] alias command`, so complex aliases with optional parameters are not supported in Powershell sessions. Type `get-help [new-alias|set-alias] -full` for help on Powershell aliases.
### SSH Agent
To start SSH agent simply call `agent`, which is in the `bin` folder.
To start SSH agent simply call `start-ssh-agent`, which is in the `vendor/git-for-windows/cmd` folder.
If you want to run SSH agent on startup, uncomment the line in `/vendor/init.bat`so it says `@call "%CMDER_ROOT%/bin/agent.cmd"`.
If you want to run SSH agent on startup, include the line `@call "%GIT_INSTALL_ROOT%/cmd/start-ssh-agent.cmd"` in `%CMDER_ROOT%/config/user-profile.cmd` (usually just uncomment it).
### Using external Cygwin/Babun, MSys2, or Git for Windows SDK with Cmder.
1. Setup a new task by pressing '<kbd>Win</kbd> +<kbd>Alt</kbd> + <kbd>T</kbd>'
1. Click the '+' button to add a task.
1. Name the new task in the top text box.
1. Provide task parameters, this is optional.
1. Add ```cmd /c "[path_to_external_env]\bin\bash --login -i" -new_console:d:%USERPROFILE%``` to the Commands text box.
Recommended Optional Steps:
Copy the 'vendor/cmder_exinit' file to the Cygwin/Babun, MSys2, or Git for Windows SDK environments ```/etc/profile.d/``` folder to use portable settings in the $CMDER_ROOT/config folder.
Note: MinGW could work if the init scripts include profile.d but this has not been tested.
The destination file extension depends on the shell you use in that environment. For example:
* bash - Copy to /etc/profile.d/cmder_exinit.sh
* zsh - Copy to /etc/profile.d/cmder_exinit.zsh
Uncomment and edit the below line in the script to use Cmder config even when launched from outside Cmder.
```
# CMDER_ROOT=${USERPROFILE}/cmder # This is not required if launched from Cmder.
```
## Todo
1. Complete PowerShell compatibility.
2. Workaround git.exe overload after msysgit download (Granted this is an upstream issue).
3. Redo Build/Pack scripts or remove them altogether.
4. Git Bash
5. Check for clink and git before injecting them
1. Check for clink and git before injecting them (Sort of done)
## Current development branch
You can download builds of the current development branch by going to Appveyor via the following link:
[![AppVeyor](https://ci.appveyor.com/api/projects/status/github/cmderdev/cmder?svg=True)](https://ci.appveyor.com/project/MartiUK/cmder/branch/development/artifacts)
## License

57
appveyor.yml Normal file
View File

@ -0,0 +1,57 @@
#---------------------------------#
# general configuration #
#---------------------------------#
version: 1.0.{build}-{branch}
# branches to build
branches:
# blacklist
except:
- gh-pages
#---------------------------------#
# environment configuration #
#---------------------------------#
# Operating system (build VM template)
os: Windows Server 2012 R2
#---------------------------------#
# build configuration #
#---------------------------------#
build_script:
- ps: cd scripts; .\build.ps1 -Compile -verbose
after_build:
- ps: .\pack.ps1 -verbose
# Disable test search, since we don't have any.
test: off
#---------------------------------#
# artifacts #
#---------------------------------#
artifacts:
- path: build\cmder.zip
name: cmderzip
- path: build\cmder.7z
name: cmder7z
- path: build\cmder_mini.zip
name: cmdermini
#---------------------------------#
# notifications #
#---------------------------------#
notifications:
# Webhook
- provider: Webhook
url: https://webhooks.gitter.im/e/d673abb1b2e659dcd625
on_build_success: true
on_build_failure: true
on_build_status_changed: true

View File

@ -1,46 +0,0 @@
@ECHO OFF
REM Set default sock file
SET SSH_AUTH_SOCK=/tmp/ssh-agent.sock
REM Check socket is available
IF NOT EXIST "%TMP%\ssh-agent.sock" GOTO:RUNAGENT
REM Check if an ssh-agent is running
FOR /f "tokens=*" %%I IN ('ps ^| grep ssh-agent ^| sed "s/^ *\([0-9]\+\) .*/\1/"') DO SET VAR=%%I
IF "%VAR%" == "" GOTO:RUNAGENT
REM Check if socket file is valid
ssh-add -l 1> NUL 2>&1
IF ERRORLEVEL 1 GOTO:RUNAGENT
GOTO:ADDKEYS
:RUNAGENT
REM Remove old socket file
rm -f /tmp/ssh-agent.sock
REM Run ssh-agent and save (last) PID in VAR
SET VAR=
FOR /f "tokens=*" %%J IN ('ssh-agent -a /tmp/ssh-agent.sock') DO FOR /f "tokens=*" %%K IN ('echo %%J ^| grep "SSH_AGENT_PID" ^| sed "s/^SSH_AGENT_PID=\([0-9]\+\); .*/\1/"') DO SET VAR=%%K
:ADDKEYS
SET SSH_AUTH_PID=%VAR%
REM Check if ssh keys are known
SET KEYS=
FOR /f "tokens=*" %%I IN ('DIR /B "%HOME%\.ssh\*_rsa"') DO CALL:CHECKKEY %%I
REM Add missing ssh keys at once
IF NOT "%KEYS%" == "" ssh-add %KEYS%
GOTO:END
REM Functions
REM Check if ssh key has to be added
:CHECKKEY
SET VAR=
FOR /f "tokens=*" %%J IN ('ssh-add -l ^| grep "%1"') DO SET VAR=%%J
IF "%VAR%" == "" SET KEYS='%HOME%\.ssh\%1' %KEYS%
GOTO:EOF
:END
@ECHO ON

View File

@ -1,8 +1,13 @@
@echo off
set ALIASES=%CMDER_ROOT%\config\aliases
setlocal
:: handle quotes within command definition, e.g. quoted long file names
set _x="%*"
set _x=%_x:"=%
if ["%*"] == [""] echo Use /? for help & echo. & goto :p_show
:: check command usage
if ["%_x%"] == [""] echo Use /? for help & echo. & goto :p_show
if ["%1"] == ["/?"] goto:p_help
if ["%1"] == ["/reload"] goto:p_reload
:: /d flag for delete existing alias
@ -13,20 +18,18 @@ if ["%2"] == [""] (
echo Insufficient parameters. & goto:p_help
)
::validate alias
setlocal
for /f "delims== tokens=1" %%G in ("%*") do set _temp2=%%G
:: validate alias
for /f "delims== tokens=1" %%G in ("%_x%") do set alias=%%G
set _temp=%alias: =%
set _temp=%_temp2: =%
if not ["%_temp%"] == ["%_temp2%"] (
if not ["%_temp%"] == ["%alias%"] (
echo Your alias name can not contain a space
endlocal
goto:eof
)
:: replace already defined alias
findstr /b /v /i "%_temp%=" "%ALIASES%" >> "%ALIASES%.tmp"
findstr /b /v /i "%alias%=" "%ALIASES%" >> "%ALIASES%.tmp"
echo %* >> "%ALIASES%.tmp" && type "%ALIASES%.tmp" > "%ALIASES%" & @del /f /q "%ALIASES%.tmp"
doskey /macrofile="%ALIASES%"
endlocal

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<key name="Software">
<key name="ConEmu">
<key name=".Vanilla" modified="2015-05-17 22:10:27" build="150513">
<key name=".Vanilla" modified="2015-11-24 14:43:35" build="151119">
<value name="ColorTable00" type="dword" data="00222827"/>
<value name="ColorTable01" type="dword" data="009e5401"/>
<value name="ColorTable02" type="dword" data="0004aa74"/>
@ -72,12 +72,12 @@
<value name="StartType" type="hex" data="02"/>
<value name="CmdLine" type="string" data=""/>
<value name="StartTasksFile" type="string" data=""/>
<value name="StartTasksName" type="string" data="{PowerShell}"/>
<value name="StartTasksName" type="string" data="{cmd::Cmder}"/>
<value name="StartFarFolders" type="hex" data="00"/>
<value name="StartFarEditors" type="hex" data="00"/>
<value name="StoreTaskbarkTasks" type="hex" data="00"/>
<value name="StoreTaskbarCommands" type="hex" data="00"/>
<value name="CmdLineHistory" type="multi"><line data=";C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\"/></value>
<value name="CmdLineHistory" type="multi"></value>
<value name="SingleInstance" type="hex" data="00"/>
<value name="ShowHelpTooltips" type="hex" data="01"/>
<value name="Multi" type="hex" data="01"/>
@ -124,13 +124,13 @@
<value name="ColorKeyValue" type="dword" data="00010101"/>
<value name="UseCurrentSizePos" type="hex" data="01"/>
<value name="WindowMode" type="dword" data="0000051f"/>
<value name="ConWnd Width" type="dword" data="0000006f"/>
<value name="ConWnd Height" type="dword" data="0000001a"/>
<value name="ConWnd Width" type="dword" data="00000078"/>
<value name="ConWnd Height" type="dword" data="0000001e"/>
<value name="Cascaded" type="hex" data="01"/>
<value name="ConWnd X" type="dword" data="000003f8"/>
<value name="ConWnd Y" type="dword" data="00000143"/>
<value name="ConWnd X" type="dword" data="000001f4"/>
<value name="ConWnd Y" type="dword" data="000001f4"/>
<value name="16bit Height" type="dword" data="00000000"/>
<value name="AutoSaveSizePos" type="hex" data="00"/>
<value name="AutoSaveSizePos" type="hex" data="01"/>
<value name="IntegralSize" type="hex" data="00"/>
<value name="QuakeStyle" type="hex" data="00"/>
<value name="QuakeAnimation" type="dword" data="0000012c"/>
@ -483,51 +483,89 @@
<value name="DndLKey" type="hex" data="00"/>
<value name="DndRKey" type="hex" data="a2"/>
<value name="WndDragKey" type="dword" data="00121101"/>
<key name="Tasks" modified="2015-05-17 22:10:27" build="150513">
<value name="Count" type="dword" data="00000003"/>
<key name="Task1" modified="2015-05-17 22:10:27" build="150513">
<value name="Name" type="string" data="{cmd}"/>
<value name="GuiArgs" type="string" data="/icon &quot;%CMDER_ROOT%\cmder.exe&quot;"/>
<key name="Tasks" modified="2015-11-24 14:43:35" build="151119">
<value name="Count" type="dword" data="00000008"/>
<key name="Task1" modified="2015-11-24 14:49:10" build="151119">
<value name="Name" type="string" data="{cmd::Cmder as Admin}"/>
<value name="GuiArgs" type="string" data=" /icon &quot;%CMDER_ROOT%\icons\cmder.ico&quot;"/>
<value name="Cmd1" type="string" data="*cmd /k &quot;%ConEmuDir%\..\init.bat&quot; -new_console:d:%USERPROFILE%"/>
<value name="Active" type="dword" data="00000000"/>
<value name="Count" type="dword" data="00000001"/>
<value name="Hotkey" type="dword" data="00000000"/>
<value name="Flags" type="dword" data="00000000"/>
</key>
<key name="Task2" modified="2015-11-24 14:49:10" build="151119">
<value name="Name" type="string" data="{cmd::Cmder}"/>
<value name="GuiArgs" type="string" data=" /icon &quot;%CMDER_ROOT%\icons\cmder.ico&quot;"/>
<value name="Cmd1" type="string" data="cmd /k &quot;%ConEmuDir%\..\init.bat&quot; -new_console:d:%USERPROFILE%"/>
<value name="Active" type="dword" data="00000000"/>
<value name="Count" type="dword" data="00000001"/>
<value name="Hotkey" type="dword" data="00000000"/>
<value name="Flags" type="dword" data="00000000"/>
</key>
<key name="Task2" modified="2015-05-17 22:10:27" build="150513">
<value name="Name" type="string" data="{PowerShell}"/>
<value name="GuiArgs" type="string" data="/icon &quot;%CMDER_ROOT%\cmder.exe&quot;"/>
<value name="Cmd1" type="string" data="PowerShell -NoLogo -NoProfile -NoExit -Command &quot;Invoke-Expression '. ''%ConEmuDir%\..\profile.ps1'''&quot; -new_console:d:&quot;%USERPROFILE%&quot;"/>
<value name="Active" type="dword" data="00000000"/>
<value name="Count" type="dword" data="00000001"/>
<key name="Task3" modified="2015-11-24 14:49:10" build="151119">
<value name="Name" type="string" data="{Powershell::PowerShell as Admin}"/>
<value name="Hotkey" type="dword" data="00000000"/>
<value name="Flags" type="dword" data="00000000"/>
</key>
<key name="Task3" modified="2015-05-17 22:10:27" build="150513">
<value name="Name" type="string" data="{PowerShell as Admin}"/>
<value name="Hotkey" type="dword" data="00000000"/>
<value name="GuiArgs" type="string" data="/icon &quot;%CMDER_ROOT%\cmder.exe&quot;"/>
<value name="Cmd1" type="string" data="*PowerShell -NoLogo -NoProfile -NoExit -Command &quot;Invoke-Expression '. ''%ConEmuDir%\..\profile.ps1'''&quot; -new_console:d:&quot;%USERPROFILE%&quot;"/>
<value name="GuiArgs" type="string" data=" /icon &quot;%CMDER_ROOT%\icons\cmder.ico&quot;"/>
<value name="Cmd1" type="string" data="*PowerShell -ExecutionPolicy Bypass -NoLogo -NoProfile -NoExit -Command &quot;Invoke-Expression '. ''%ConEmuDir%\..\profile.ps1'''&quot; -new_console:d:&quot;%USERPROFILE%&quot;"/>
<value name="Active" type="dword" data="00000000"/>
<value name="Count" type="dword" data="00000001"/>
<value name="Flags" type="dword" data="00000000"/>
</key>
<key name="Task4" modified="2015-02-24 18:49:50" build="140707">
<value name="Name" type="string" data="{git sh}"/>
<key name="Task4" modified="2015-11-24 14:49:10" build="151119">
<value name="Name" type="string" data="{Powershell::Powershell}"/>
<value name="Hotkey" type="dword" data="00000000"/>
<value name="GuiArgs" type="string" data=" /icon &quot;%CMDER_ROOT%\cmder.exe&quot;"/>
<value name="Cmd1" type="string" data="cmd /k &quot;%ConEmuDir%\..\init.bat &amp; %CMDER_ROOT%\vendor\msysgit\bin\bash --login -i&quot; -new_console:d:%USERPROFILE%"/>
<value name="Cmd2" type="string" data="%CMDER_ROOT%\vendor\msysgit\git-bash.bat"/>
<value name="GuiArgs" type="string" data=" /icon &quot;%CMDER_ROOT%\icons\cmder.ico&quot;"/>
<value name="Cmd1" type="string" data="PowerShell -ExecutionPolicy Bypass -NoLogo -NoProfile -NoExit -Command &quot;Invoke-Expression '. ''%ConEmuDir%\..\profile.ps1'''&quot; -new_console:d:&quot;%USERPROFILE%&quot;"/>
<value name="Cmd2" type="string" data="%CMDER_ROOT%\vendor\git-for-windows\git-bash.exe"/>
<value name="Active" type="dword" data="00000000"/>
<value name="Count" type="dword" data="00000001"/>
<value name="Flags" type="dword" data="00000000"/>
</key>
<key name="Task5" modified="2015-11-24 14:49:10" build="151119">
<value name="Name" type="string" data="{bash::mintty as Admin}"/>
<value name="Flags" type="dword" data="00000000"/>
<value name="Hotkey" type="dword" data="00000000"/>
<value name="GuiArgs" type="string" data="/icon &quot;%ConEmuDir%\..\git-for-windows\usr\share\git\git-for-windows.ico&quot;"/>
<value name="Cmd1" type="string" data="*%ConEmuDir%\..\git-for-windows\usr\bin\mintty.exe /bin/bash -l -new_console:d:%USERPROFILE%"/>
<value name="Active" type="dword" data="00000000"/>
<value name="Count" type="dword" data="00000001"/>
</key>
<key name="Task6" modified="2015-11-24 14:49:10" build="151119">
<value name="Name" type="string" data="{bash::mintty}"/>
<value name="Flags" type="dword" data="00000000"/>
<value name="Hotkey" type="dword" data="00000000"/>
<value name="GuiArgs" type="string" data="/icon &quot;%ConEmuDir%\..\git-for-windows\usr\share\git\git-for-windows.ico&quot;"/>
<value name="Cmd1" type="string" data="%ConEmuDir%\..\git-for-windows\usr\bin\mintty.exe /bin/bash -l -new_console:d:%userProfile%"/>
<value name="Active" type="dword" data="00000000"/>
<value name="Count" type="dword" data="00000001"/>
<value name="Cmd2" type="string" data="%CMDER_ROOT%vendor\git-for-windows\usr\bin\mintty.exe /bin/bash -l -new_console:d:%userProfile%"/>
</key>
<key name="Task7" modified="2015-11-24 14:49:10" build="151119">
<value name="Name" type="string" data="{bash::bash as Admin}"/>
<value name="Flags" type="dword" data="00000000"/>
<value name="Hotkey" type="dword" data="00000000"/>
<value name="GuiArgs" type="string" data=" /icon &quot;%CMDER_ROOT%\icons\cmder.ico&quot;"/>
<value name="Active" type="dword" data="00000000"/>
<value name="Count" type="dword" data="00000001"/>
<value name="Cmd1" type="string" data="*cmd /c &quot;%ConEmuDir%\..\git-for-windows\bin\bash --login -i&quot; -new_console:d:%USERPROFILE%"/>
</key>
<key name="Task8" modified="2015-11-24 14:49:10" build="151119">
<value name="Name" type="string" data="{bash::bash}"/>
<value name="Flags" type="dword" data="00000000"/>
<value name="Hotkey" type="dword" data="00000000"/>
<value name="GuiArgs" type="string" data=" /icon &quot;%CMDER_ROOT%\icons\cmder.ico&quot;"/>
<value name="Cmd1" type="string" data="cmd /c &quot;%ConEmuDir%\..\git-for-windows\bin\bash --login -i&quot; -new_console:d:%USERPROFILE%"/>
<value name="Active" type="dword" data="00000000"/>
<value name="Count" type="dword" data="00000001"/>
</key>
</key>
<key name="Apps" modified="2015-05-17 22:10:27" build="150513">
<key name="Apps" modified="2015-11-24 14:49:10" build="151119">
<value name="Count" type="dword" data="00000000"/>
</key>
<key name="Colors" modified="2015-05-17 22:10:27" build="150513">
<key name="Palette1" modified="2015-05-17 22:10:27" build="150513">
<key name="Colors" modified="2015-11-24 14:49:10" build="151119">
<key name="Palette1" modified="2015-11-24 14:49:10" build="151119">
<value name="Name" type="string" data="Monokai"/>
<value name="ExtendColors" type="hex" data="00"/>
<value name="ExtendColorIdx" type="hex" data="0e"/>
@ -628,7 +666,7 @@
<value name="StatusBar.Hide.Dpi" type="hex" data="01"/>
<value name="TabFlashChanged" type="dword" data="00000008"/>
<value name="TabModifiedSuffix" type="string" data="[*]"/>
<key name="HotKeys" modified="2015-05-17 22:10:27" build="150513">
<key name="HotKeys" modified="2015-11-24 14:43:35" build="151119">
<value name="KeyMacroVersion" type="hex" data="02"/>
<value name="Multi.Modifier" type="dword" data="00000011"/>
<value name="Multi.ArrowsModifier" type="dword" data="0000005b"/>
@ -734,27 +772,27 @@
<value name="PastePathKey" type="dword" data="00101144"/>
<value name="PasteCygwinKey" type="dword" data="00005d2d"/>
<value name="KeyMacro01" type="dword" data="00a01231"/>
<value name="KeyMacro01.Text" type="string" data="Task(&quot;cmd&quot;)"/>
<value name="KeyMacro01.Text" type="string" data="Task(1)"/>
<value name="KeyMacro02" type="dword" data="00a01232"/>
<value name="KeyMacro02.Text" type="string" data="Task(&quot;PowerShell&quot;)"/>
<value name="KeyMacro02.Text" type="string" data="Task(2)"/>
<value name="KeyMacro03" type="dword" data="000011d0"/>
<value name="KeyMacro03.Text" type="string" data="FontSetSize(1,2)"/>
<value name="KeyMacro04" type="dword" data="000011d1"/>
<value name="KeyMacro04.Text" type="string" data="FontSetSize(1,-2)"/>
<value name="KeyMacro05" type="dword" data="00a01233"/>
<value name="KeyMacro05.Text" type="string" data="Task(&quot;PowerShell as Admin&quot;)"/>
<value name="KeyMacro06" type="dword" data="00000000"/>
<value name="KeyMacro06.Text" type="string" data=""/>
<value name="KeyMacro07" type="dword" data="00000000"/>
<value name="KeyMacro07.Text" type="string" data=""/>
<value name="KeyMacro08" type="dword" data="00000000"/>
<value name="KeyMacro08.Text" type="string" data=""/>
<value name="KeyMacro09" type="dword" data="00000000"/>
<value name="KeyMacro09.Text" type="string" data=""/>
<value name="KeyMacro10" type="dword" data="00000000"/>
<value name="KeyMacro10.Text" type="string" data=""/>
<value name="KeyMacro11" type="dword" data="00000000"/>
<value name="KeyMacro11.Text" type="string" data=""/>
<value name="KeyMacro05.Text" type="string" data="Task(3)"/>
<value name="KeyMacro06" type="dword" data="00a01234"/>
<value name="KeyMacro06.Text" type="string" data="Task(4)"/>
<value name="KeyMacro07" type="dword" data="00a01235"/>
<value name="KeyMacro07.Text" type="string" data="Task(5)"/>
<value name="KeyMacro08" type="dword" data="00a01236"/>
<value name="KeyMacro08.Text" type="string" data="Task(6)"/>
<value name="KeyMacro09" type="dword" data="00a01237"/>
<value name="KeyMacro09.Text" type="string" data="Task(7)"/>
<value name="KeyMacro10" type="dword" data="00a01238"/>
<value name="KeyMacro10.Text" type="string" data="Task(8)"/>
<value name="KeyMacro11" type="dword" data="00a01239"/>
<value name="KeyMacro11.Text" type="string" data="Task(9)"/>
<value name="KeyMacro12" type="dword" data="00000000"/>
<value name="KeyMacro12.Text" type="string" data=""/>
<value name="KeyMacro13" type="dword" data="00000000"/>
@ -805,7 +843,20 @@
<value name="DndLKey" type="hex" data="00"/>
<value name="DndRKey" type="hex" data="a2"/>
<value name="WndDragKey" type="dword" data="00121101"/>
<value name="Multi.Unfasten" type="dword" data="00000000"/>
<value name="Key.DebugProcess" type="dword" data="00105b44"/>
<value name="Key.DumpProcess" type="dword" data="00000000"/>
<value name="Key.DumpTree" type="dword" data="00000000"/>
</key>
<value name="StartCreateDelay" type="dword" data="00000064"/>
<value name="DefaultTerminalDebugLog" type="hex" data="00"/>
<value name="LastMonitor" type="string" data="0,0,1920,1020"/>
<value name="Restore2ActiveMon" type="hex" data="00"/>
<value name="DownShowExOnTopMessage" type="hex" data="00"/>
<value name="EnvironmentSet" type="multi"/>
<value name="Update.InetTool" type="hex" data="00"/>
<value name="Update.InetToolCmd" type="string" data=""/>
<value name="SuppressBells" type="hex" data="01"/>
</key>
</key>
</key>

View File

@ -1,3 +1,14 @@
## Config
All config files must be in this folder. If there is no option to set this folder directly, it has to be hardlinked.
All config files must be in this folder. If there is no option to set this folder
directly, it has to be hardlinked.
* `aliases`: aliases in cmd; called form vendor\init.bat; autocreated from
`vendor\aliases.example`.
* `*.lua`: clink completitions and prompt filters; called from vendor\cmder.lua after all
other prompt filter and clink completitons are initialized; add your own.
* `user_profile.{sh|bat|ps1}`: startup files for bash|cmd|powershell tasks; called from their
respective startup scripts in `vendor\`; autocreated on first start of such a task
* `.history`: the current commandline history; autoupdated on close
* `settings`: settings for readline; overwritten on update
* `ConEmu.xml`: settings from ConEmu (=the UI of cmder -> Preferences); overwritten on update

View File

@ -1,43 +0,0 @@
# name: Ctrl-D exits
# type: bool
# Ctrl-D exits the process when it is pressed on an empty line.
ctrld_exits = 1
# name: Ctrl-C raises exception
# type: bool
# When Ctrl-C is pressed Clink will pass it thourgh to the parent by raising the
# appropriate exception.
passthrough_ctrlc = 1
# name: Esc clears line
# type: bool
# Clink clears the current line when Esc is pressed (unless Readline's Vi mode
# is enabled).
esc_clears_line = 1
# name: Match display colour
# type: int
# Colour to use when displaying matches. A value less than 0 will be the
# opposite brightness of the default colour.
match_colour = -1
# name: Executable match style
# type: enum
# Changes how Clink will match executables when there is no path separator on
# the line. 0 = PATH only, 1 = PATH and CWD, 2 = PATH, CWD, and directories. In
# all cases both executables and directories are matched when there is a path
# separator present.
exec_match_style = 2
# name: Prompt colour
# type: int
# Surrounds the prompt in ANSI escape codes to set the prompt's colour. Disabled
# when the value is less than 0.
prompt_colour = -1
# name: Auto-answer terminate prompt
# type: enum
# Automatically answers cmd.exe's 'Terminate batch job (Y/N)?' prompts. 0 =
# disabled, 1 = answer 'Y', 2 = answer 'N'.
terminate_autoanswer = 0

View File

@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.22823.1
VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CmderLauncher", "CmderLauncher.vcxproj", "{4A8485A5-B7DD-4C44-B7F6-3E2765DD0CD3}"
EndProject

View File

@ -14,7 +14,6 @@
<ProjectGuid>{4A8485A5-B7DD-4C44-B7F6-3E2765DD0CD3}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>CmderLauncher</RootNamespace>
<TargetPlatformVersion>8.1</TargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
@ -73,6 +72,7 @@
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@ -85,7 +85,9 @@
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ResourceCompile Include="src\Resource.rc" />
<ResourceCompile Include="src\Resource.rc">
<FileType>RC</FileType>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="src\resource.h" />

View File

@ -4,6 +4,7 @@
#include "resource.h"
#include <vector>
#pragma comment(lib, "Shlwapi.lib")
#ifndef UNICODE
@ -18,7 +19,7 @@
#define SHELL_MENU_REGISTRY_PATH_BACKGROUND L"Directory\\Background\\shell\\Cmder"
#define SHELL_MENU_REGISTRY_PATH_LISTITEM L"Directory\\shell\\Cmder"
#define streqi(a, b) (_wcsicmp((a), (b)) == 0)
#define streqi(a, b) (_wcsicmp((a), (b)) == 0)
#define WIDEN2(x) L ## x
#define WIDEN(x) WIDEN2(x)
@ -29,7 +30,7 @@
void ShowErrorAndExit(DWORD ec, const wchar_t * func, int line)
{
wchar_t * buffer;
if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, ec, 0, (LPWSTR) &buffer, 0, NULL) == 0)
{
buffer = L"Unknown error. FormatMessage failed.";
@ -63,10 +64,12 @@ optpair GetOption()
if (argc == 1)
{
// no commandline argument...
pair = optpair(L"/START", L"");
}
else if (argc == 2 && argv[1][0] != L'/')
{
// only a single argument: this should be a path...
pair = optpair(L"/START", argv[1]);
}
else
@ -79,6 +82,19 @@ optpair GetOption()
return pair;
}
bool FileExists(const wchar_t * filePath)
{
HANDLE hFile = CreateFile(filePath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
if (hFile != INVALID_HANDLE_VALUE)
{
CloseHandle(hFile);
return true;
}
return false;
}
void StartCmder(std::wstring path, bool is_single_mode)
{
#if USE_TASKBAR_API
@ -87,6 +103,7 @@ void StartCmder(std::wstring path, bool is_single_mode)
wchar_t exeDir[MAX_PATH] = { 0 };
wchar_t icoPath[MAX_PATH] = { 0 };
wchar_t cfgPath[MAX_PATH] = { 0 };
wchar_t oldCfgPath[MAX_PATH] = { 0 };
wchar_t conEmuPath[MAX_PATH] = { 0 };
wchar_t args[MAX_PATH * 2 + 256] = { 0 };
@ -99,20 +116,54 @@ void StartCmder(std::wstring path, bool is_single_mode)
PathRemoveFileSpec(exeDir);
PathCombine(icoPath, exeDir, L"icons\\cmder.ico");
PathCombine(cfgPath, exeDir, L"config\\ConEmu.xml");
// Check for machine-specific config file.
PathCombine(oldCfgPath, exeDir, L"config\\ConEmu-%COMPUTERNAME%.xml");
ExpandEnvironmentStrings(oldCfgPath, oldCfgPath, sizeof(oldCfgPath) / sizeof(oldCfgPath[0]));
if (!PathFileExists(oldCfgPath)) {
PathCombine(oldCfgPath, exeDir, L"config\\ConEmu.xml");
}
// Check for machine-specific config file.
PathCombine(cfgPath, exeDir, L"vendor\\conemu-maximus5\\ConEmu-%COMPUTERNAME%.xml");
ExpandEnvironmentStrings(cfgPath, cfgPath, sizeof(cfgPath) / sizeof(cfgPath[0]));
if (!PathFileExists(cfgPath)) {
PathCombine(cfgPath, exeDir, L"vendor\\conemu-maximus5\\ConEmu.xml");
}
PathCombine(conEmuPath, exeDir, L"vendor\\conemu-maximus5\\ConEmu.exe");
if (is_single_mode)
if (FileExists(oldCfgPath) && !FileExists(cfgPath))
{
swprintf_s(args, L"/single /Icon \"%s\" /Title Cmder /LoadCfgFile \"%s\"", icoPath, cfgPath);
if (!CopyFile(oldCfgPath, cfgPath, FALSE))
{
MessageBox(NULL,
(GetLastError() == ERROR_ACCESS_DENIED)
? L"Failed to copy ConEmu.xml file to new location! Restart cmder as administrator."
: L"Failed to copy ConEmu.xml file to new location!", MB_TITLE, MB_ICONSTOP);
exit(1);
}
}
else
if (is_single_mode)
{
swprintf_s(args, L"/Icon \"%s\" /Title Cmder /LoadCfgFile \"%s\"", icoPath, cfgPath);
swprintf_s(args, L"/single /Icon \"%s\" /Title Cmder", icoPath);
}
else
{
swprintf_s(args, L"/Icon \"%s\" /Title Cmder", icoPath);
}
SetEnvironmentVariable(L"CMDER_ROOT", exeDir);
SetEnvironmentVariable(L"CMDER_START", path.c_str());
if (!streqi(path.c_str(), L""))
{
if (!SetEnvironmentVariable(L"CMDER_START", path.c_str())) {
MessageBox(NULL, _T("Error trying to set CMDER_START to given path!"), _T("Error"), MB_OK);
}
}
// Ensure EnvironmentVariables are propagated.
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)"Environment", SMTO_ABORTIFHUNG, 5000, NULL);
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM) L"Environment", SMTO_ABORTIFHUNG, 5000, NULL); // For Windows >= 8
STARTUPINFO si = { 0 };
si.cb = sizeof(STARTUPINFO);
@ -122,8 +173,10 @@ void StartCmder(std::wstring path, bool is_single_mode)
#endif
PROCESS_INFORMATION pi;
CreateProcess(conEmuPath, args, NULL, NULL, false, 0, NULL, NULL, &si, &pi);
if (!CreateProcess(conEmuPath, args, NULL, NULL, false, 0, NULL, NULL, &si, &pi)) {
MessageBox(NULL, _T("Unable to create the ConEmu Process!"), _T("Error"), MB_OK);
return;
}
}
bool IsUserOnly(std::wstring opt)

View File

@ -4,6 +4,18 @@ launcher
.git
*.rb
build
scripts
config\.history
packignore
icons\Thumbs.db
icons\cmder_icon.psd
icons\icon_16.png
icons\icon_32.png
icons\icon_48.png
icons\icon_256.png
Cmder.bat
vendor\tmp
appveyor.yml
vendor\cmder.sh
vendor\git-prompt.sh
config\user-*

View File

@ -11,11 +11,11 @@
.EXAMPLE
.\build.ps1
Executes the default build for cmder; Conemu, clink. This is equivalent to the "minimum" style package in the releases
Executes the default build for Cmder; Conemu, clink. This is equivalent to the "minimum" style package in the releases
.EXAMPLE
.\build.ps1 -Full
.\build.ps1 -Compile
Executes a full build for cmder, including git. This is equivalent to the "full" style package in the releases
Recompile the launcher executable if you have the requisite build tools for C++ installed.
.EXAMPLE
.\build -verbose
@ -29,7 +29,7 @@
Samuel Vasko, Jack Bennett
Part of the Cmder project.
.LINK
https://github.com/bliker/cmder - Project Home
http://cmder.net/ - Project Home
#>
[CmdletBinding(SupportsShouldProcess=$true)]
Param(
@ -46,11 +46,15 @@ Param(
# Launcher folder location
[string]$launcher = "..\launcher",
# Include git with the package build
[switch]$Full
# Config folder location
[string]$config = "..\config",
# New launcher if you have MSBuild tools installed
[switch]$Compile
)
. "$PSScriptRoot\utils.ps1"
# Dot source util functions into this scope
. ".\utils.ps1"
$ErrorActionPreference = "Stop"
Push-Location -Path $saveTo
@ -61,11 +65,18 @@ Ensure-Exists $sourcesPath
Ensure-Executable "7z"
New-Item -Type Directory -Path (Join-Path $saveTo "/tmp/") -ErrorAction SilentlyContinue >$null
foreach ($s in $sources) {
if($Full -eq $false -and $s.name -eq "msysgit"){
Continue
}
# Preserve modified (by user) ConEmu setting file
if ($config -ne "") {
$ConEmuXml = Join-Path $saveTo "conemu-maximus5\ConEmu.xml"
if (Test-Path $ConEmuXml -pathType leaf) {
$ConEmuXmlSave = Join-Path $config "ConEmu.xml"
Write-Verbose "Backup '$ConEmuXml' to '$ConEmuXmlSave'"
Copy-Item $ConEmuXml $ConEmuXmlSave
} else { $ConEmuXml = "" }
} else { $ConEmuXml = "" }
$vend = $pwd
foreach ($s in $sources) {
Write-Verbose "Getting $($s.name) from URL $($s.url)"
# We do not care about the extensions/type of archive
@ -73,7 +84,7 @@ foreach ($s in $sources) {
Delete-Existing $tempArchive
Delete-Existing $s.name
Invoke-WebRequest -Uri $s.url -OutFile $tempArchive -ErrorAction Stop
Download-File -Url $s.url -File $vend\$tempArchive -ErrorAction Stop
Extract-Archive $tempArchive $s.name
if ((Get-Childitem $s.name).Count -eq 1) {
@ -83,10 +94,37 @@ foreach ($s in $sources) {
"$($s.version)" | Out-File "$($s.name)/.cmderver"
}
# Restore user configuration
if ($ConEmuXml -ne "") {
Write-Verbose "Restore '$ConEmuXmlSave' to '$ConEmuXml'"
Copy-Item $ConEmuXmlSave $ConEmuXml
}
Pop-Location
Push-Location -Path $launcher
msbuild CmderLauncher.vcxproj /p:configuration=Release
Pop-Location
if($Compile) {
Push-Location -Path $launcher
msbuild CmderLauncher.vcxproj /p:configuration=Release
if ($LastExitCode -ne 0) {
throw "msbuild failed to build the executable."
}
Pop-Location
} else {
Write-Warning "You are not building a launcher, Use -Compile"
Write-Warning "This cannot be a release. Test build only!"
}
# Put vendor\cmder.sh in /etc/profile.d so it runs when we start bash or mintty
if ( (Test-Path $($SaveTo + "git-for-windows/etc/profile.d") ) ) {
write-verbose "Adding cmder.sh /etc/profile.d"
Copy-Item $($SaveTo + "cmder.sh") $($SaveTo + "git-for-windows/etc/profile.d/cmder.sh")
}
# Replace /etc/profile.d/git-prompt.sh with cmder lambda prompt so it runs when we start bash or mintty
if ( !(Test-Path $($SaveTo + "git-for-windows/etc/profile.d/git-prompt.sh.bak") ) ) {
write-verbose "Replacing /etc/profile.d/git-prompt.sh with our git-prompt.sh"
Move-Item $($SaveTo + "git-for-windows/etc/profile.d/git-prompt.sh") $($SaveTo + "git-for-windows/etc/profile.d/git-prompt.sh.bak")
Copy-Item $($SaveTo + "git-prompt.sh") $($SaveTo + "git-for-windows/etc/profile.d/git-prompt.sh")
}
Write-Verbose "All good and done!"

View File

@ -19,7 +19,7 @@
Samuel Vasko, Jack Bennett, Martin Kemp
Part of the Cmder project.
.LINK
https://github.com/bliker/cmder - Project Home
https://github.com/cmderdev/cmder - Project Home
#>
[CmdletBinding(SupportsShouldProcess=$true)]
@ -42,11 +42,11 @@ Ensure-Executable "7z"
$targets = @{
"cmder.zip" = $null;
"cmder.7z" = $null;
"cmder_mini.zip" = "-x!`"vendor\msysgit`"";
"cmder_mini.zip" = "-x!`"vendor\git-for-windows`"";
}
Delete-Existing "..\Version*"
Cleanup-Git
Delete-Existing "..\build\*"
$version = Invoke-Expression "git describe --abbrev=0 --tags"
(New-Item -ItemType file "$cmderRoot\Version $version") | Out-Null

View File

@ -61,11 +61,6 @@ function Digest-MD5 ($path) {
return Invoke-Expression "md5sum $path"
}
function Cleanup-Git () {
$gitdir = '/vendor/msysgit/libexec/git-core/'
Get-Childitem $gitdir -Exclude git.exe | Where-Object{!($_.PSIsContainer)} | Foreach-Object { Remove-Item $_.FullName }
}
function Register-Cmder(){
[CmdletBinding()]
Param
@ -94,3 +89,16 @@ function Register-Cmder(){
New-Item -Path "HKCR:\Directory\Shell\Cmder\Command" -Force -Value "`"$PathToExe`" `"$Command`" "
}
}
function Download-File {
param (
$Url,
$File
)
# I think this is the problem
$File = $File -Replace "/", "\"
Write-Verbose "Downloading from $Url to $File"
$wc = new-object System.Net.WebClient
$wc.Proxy.Credentials=[System.Net.CredentialCache]::DefaultNetworkCredentials;
$wc.DownloadFile($Url, $File)
}

View File

@ -5,3 +5,4 @@ pwd=cd
clear=cls
history=cat %CMDER_ROOT%\config\.history
unalias=alias /d $1
vi=vim $*

View File

@ -1,3 +1,17 @@
-- default script for clink, called by init.bat when injecting clink
-- !!! THIS FILE IS OVERWRITTEN WHEN CMDER IS UPDATED
-- !!! Use "%CMDER_ROOT%\config\<whatever>.lua" to add your lua startup scripts
-- At first, load the original clink.lua file
-- this is needed as we set the script path to this dir and therefore the original
-- clink.lua is not loaded.
local clink_lua_file = clink.get_env('CMDER_ROOT')..'\\vendor\\clink\\clink.lua'
dofile(clink_lua_file)
-- now add our own things...
function lambda_prompt_filter()
clink.prompt.value = string.gsub(clink.prompt.value, "{lamb}", "λ")
end
@ -57,8 +71,45 @@ local function get_hg_dir(path)
return get_dir_contains(path, '.hg')
end
-- adapted from from clink-completions' git.lua
local function get_git_dir(path)
return get_dir_contains(path, '.git')
-- return parent path for specified entry (either file or directory)
local function pathname(path)
local prefix = ""
local i = path:find("[\\/:][^\\/:]*$")
if i then
prefix = path:sub(1, i-1)
end
return prefix
end
-- Checks if provided directory contains git directory
local function has_git_dir(dir)
return #clink.find_dirs(dir..'/.git') > 0 and dir..'/.git'
end
local function has_git_file(dir)
local gitfile = io.open(dir..'/.git')
if not gitfile then return false end
local git_dir = gitfile:read():match('gitdir: (.*)')
gitfile:close()
return git_dir and dir..'/'..git_dir
end
-- Set default path to current directory
if not path or path == '.' then path = clink.get_cwd() end
-- Calculate parent path now otherwise we won't be
-- able to do that inside of logical operator
local parent_path = pathname(path)
return has_git_dir(path)
or has_git_file(path)
-- Otherwise go up one level and make a recursive call
or (parent_path ~= path and get_git_dir(parent_path) or nil)
end
---
@ -118,17 +169,23 @@ end
---
-- Find out current branch
-- @return {false|git branch name}
-- @return {nil|git branch name}
---
function get_git_branch()
for line in io.popen("git branch 2>nul"):lines() do
local m = line:match("%* (.+)$")
if m then
return m
end
end
function get_git_branch(git_dir)
local git_dir = git_dir or get_git_dir()
return false
-- If git directory not found then we're probably outside of repo
-- or something went wrong. The same is when head_file is nil
local head_file = git_dir and io.open(git_dir..'/HEAD')
if not head_file then return end
local HEAD = head_file:read()
head_file:close()
-- if HEAD matches branch expression, then we're on named branch
-- otherwise it is a detached commit
local branch_name = HEAD:match('ref: refs/heads/(.+)')
return branch_name or 'HEAD detached at '..HEAD:sub(1, 7)
end
---
@ -136,7 +193,7 @@ end
-- @return {bool}
---
function get_git_status()
return os.execute("git diff --quiet --ignore-submodules HEAD 2>nul")
return io.popen("git diff --quiet --ignore-submodules HEAD 2>nul")
end
function git_prompt_filter()
@ -147,9 +204,10 @@ function git_prompt_filter()
dirty = "\x1b[31;1m",
}
if get_git_dir() then
local git_dir = get_git_dir()
if git_dir then
-- if we're inside of git repo then try to detect current branch
local branch = get_git_branch()
local branch = get_git_branch(git_dir)
if branch then
-- Has branch => therefore it is a git folder, now figure out status
if get_git_status() then
@ -181,4 +239,5 @@ for _,lua_module in ipairs(clink.find_files(completions_dir..'*.lua')) do
-- so config reloading using Alt-Q won't reload updated modules.
dofile(filename)
end
end
end

73
vendor/cmder.sh vendored Normal file
View File

@ -0,0 +1,73 @@
# DO NOT EDIT THIS FILE IT WILL BE OVERWRITTEN ON UPDATE
#
# Add portable user customizations ${CMDER_ROOT}/config/user-profile.sh,
# these customizations will follow Cmder if $CMDER_ROOT is copied
# to another machine.
#
# Add system specific users customizations to $HOME/.bashrc, these
# customizations will not follow Cmder to another machine.
# We do this for bash as admin sessions since $CMDER_ROOT is not being set
if [ "$CMDER_ROOT" == "" ] ; then
case "$ConEmuDir" in *\\*) CMDER_ROOT=$( cd "$(cygpath -u "$ConEmuDir")/../.." ; pwd );; esac
else
case "$CMDER_ROOT" in *\\*) CMDER_ROOT="$(cygpath -u "$CMDER_ROOT")";; esac
fi
# Remove any trailing '/'
CMDER_ROOT=$(echo $CMDER_ROOT | sed 's:/*$::')
export CMDER_ROOT
if [ -d "/c/Program Files/Git" ] ; then
GIT_INSTALL_ROOT="/c/Program Files/Git"
elif [ -d "/c/Program Files(x86)/Git" ] ; then
GIT_INSTALL_ROOT="/c/Program Files(x86)/Git"
elif [ -d "${CMDER_ROOT}/vendor/git-for-windows" ] ; then
GIT_INSTALL_ROOT=${CMDER_ROOT}/vendor/git-for-windows
fi
if [[ ! "$PATH" =~ "${GIT_INSTALL_ROOT}/bin:" ]] ; then
PATH=${GIT_INSTALL_ROOT}/bin:$PATH
fi
PATH=${CMDER_ROOT}/bin:$PATH:${CMDER_ROOT}
export PATH
# Drop *.sh or *.zsh files into "${CMDER_ROOT}\config\profile.d"
# to source them at startup.
if [ ! -d "${CMDER_ROOT}/config/profile.d" ] ; then
mkdir -p ${CMDER_ROOT}/config/profile.d
fi
if [ -d "${CMDER_ROOT}/config/profile.d" ] ; then
unset profile_d_scripts
pushd ${CMDER_ROOT}/config/profile.d >/dev/null
profile_d_scripts=$(ls ${CMDER_ROOT}/config/profile.d/*.sh 2>/dev/null)
if [ ! "x${profile_d_scripts}" = "x" ] ; then
for x in ${profile_d_scripts} ; do
# echo Sourcing "${x}"...
. $x
done
fi
popd >/dev/null
fi
if [ -f ${CMDER_ROOT}/config/user-profile.sh ] ; then
. ${CMDER_ROOT}/config/user-profile.sh
else
echo Creating user startup file: "${CMDER_ROOT}/config/user-profile.sh"
cat <<-eof >"${CMDER_ROOT}/config/user-profile.sh"
# use this file to run your own startup commands for msys2 bash'
# To add a new vendor to the path, do something like:
# export PATH=\${CMDER_ROOT}/vendor/whatever:\${PATH}
eof
fi
# Source the users .bashrc file if it exists
if [ -f "${HOME}/.bashrc" ] ; then
. "${HOME}/.bashrc"
fi

86
vendor/cmder_exinit vendored Normal file
View File

@ -0,0 +1,86 @@
# Copy this file to your non integrated *nix-like environment,
# Cygwin/MSys2/Git for Windows SDK, installs '/etc/profile.d/'
# folder to integrate the externally installed Unix like environment
# into Cmder so it has access to settings stored in Cmder/config
# folder when launched.
#
# The destination file extension depends on the shell you use. For example:
#
# bash - Copy to /etc/profile.d/cmder_exinit.sh
# zsh - Copy to /etc/profile.d/cmder_exinit.zsh
# Add portable user customizations ${CMDER_ROOT}/config/user-profile.sh or
# add whole config scripts to ${CMDER_ROOT}/config/profile.d both will be sourced
# from mthis file and be appied to the environment at startup.
#
# These customizations will follow Cmder if $CMDER_ROOT is copied
# to another machine.
#
# Add system specific users customizations to $HOME/.bashrc, these
# customizations will not follow Cmder to another machine.
# # Uncomment and edit the CMDER_ROOT line to use Cmder/config even when launched
# # from outside Cmder.
# CMDER_ROOT=${USERPROFILE}/cmder # This is not required if launched from Cmder.
# Check that we haven't already been sourced.
[[ -z ${CMDER_EXINIT} ]] && CMDER_EXINIT="1" || return
# We do this for bash as admin sessions since $CMDER_ROOT is not being set
if [ "$CMDER_ROOT" = "" -a "$ConEmuDir" != "" ] ; then
if [ -d "${ConEmuDir}../../vendor" ] ; then
case "$ConEmuDir" in *\\*) CMDER_ROOT=$( cd "$(cygpath -u "$ConEmuDir")/../.." ; pwd );; esac
else
echo "Running in ConEmu without Cmder, skipping Cmder integration."
fi
elif [ "$CMDER_ROOT" != "" ] ; then
case "$CMDER_ROOT" in *\\*) CMDER_ROOT="$(cygpath -u "$CMDER_ROOT")";; esac
fi
if [ ! "$CMDER_ROOT" = "" ] ; then
# Remove any trailing '/'
CMDER_ROOT=$(echo $CMDER_ROOT | sed 's:/*$::')
echo "Using \"CMDER_ROOT\" at \"${CMDER_ROOT}\"."
export CMDER_ROOT
PATH=${CMDER_ROOT}/bin:$PATH:${CMDER_ROOT}
export PATH
# Drop *.sh or *.zsh files into "${CMDER_ROOT}\config\profile.d"
# to source them at startup.
if [ ! -d "${CMDER_ROOT}/config/profile.d" ] ; then
mkdir -p ${CMDER_ROOT}/config/profile.d
fi
if [ -d "${CMDER_ROOT}/config/profile.d" ] ; then
unset profile_d_scripts
pushd ${CMDER_ROOT}/config/profile.d >/dev/null
if [ ! "x${ZSH_VERSION}" = "x" ]; then
profile_d_scripts=$(ls ${CMDER_ROOT}/config/profile.d/*.zsh 2>/dev/null)
elif [ ! "x${BASH_VERSION}" = "x" ]; then
profile_d_scripts=$(ls ${CMDER_ROOT}/config/profile.d/*.sh 2>/dev/null)
fi
if [ ! "x${profile_d_scripts}" = "x" ] ; then
for x in ${profile_d_scripts} ; do
# echo Sourcing "${x}"...
. $x
done
fi
popd >/dev/null
fi
if [ -f ${CMDER_ROOT}/config/user-profile.sh ] ; then
. ${CMDER_ROOT}/config/user-profile.sh
else
echo Creating user startup file: "${CMDER_ROOT}/config/user-profile.sh"
cat <<-eof >"${CMDER_ROOT}/config/user-profile.sh"
# use this file to run your own startup commands for msys2 bash'
# To add a new vendor to the path, do something like:
# export PATH=\${CMDER_ROOT}/vendor/whatever:\${PATH}
eof
fi
fi

22
vendor/git-prompt.sh vendored Normal file
View File

@ -0,0 +1,22 @@
PS1='\[\033]0;$MSYSTEM:${PWD//[^[:ascii:]]/?}\007\]' # set window title
PS1="$PS1"'\[\033[32m\]' # change to green
PS1="$PS1"'\u@\h ' # user@host<space>
PS1="$PS1"'\[\033[33m\]' # change to brownish yellow
PS1="$PS1"'\w' # current working directory
if test -z "$WINELOADERNOEXEC"
then
GIT_EXEC_PATH="$(git --exec-path 2>/dev/null)"
COMPLETION_PATH="${GIT_EXEC_PATH%/libexec/git-core}"
COMPLETION_PATH="${COMPLETION_PATH%/lib/git-core}"
COMPLETION_PATH="$COMPLETION_PATH/share/git/completion"
if test -f "$COMPLETION_PATH/git-prompt.sh"
then
. "$COMPLETION_PATH/git-completion.bash"
. "$COMPLETION_PATH/git-prompt.sh"
PS1="$PS1"'\[\033[36m\]' # change color to cyan
PS1="$PS1"'`__git_ps1`' # bash function
fi
fi
PS1="$PS1"'\[\033[0m\]' # change color
PS1="$PS1"'\n' # new line
PS1="$PS1"'λ ' # prompt: always λ

113
vendor/init.bat vendored
View File

@ -1,63 +1,118 @@
@echo off
:: Init Script for cmd.exe
:: Sets some nice defaults
:: Created as part of cmder project
:: !!! THIS FILE IS OVERWRITTEN WHEN CMDER IS UPDATED
:: !!! Use "%CMDER_ROOT%\config\user-profile.cmd" to add your own startup commands
:: Find root dir
@if not defined CMDER_ROOT (
for /f "delims=" %%i in ("%ConEmuDir%\..\..") do @set CMDER_ROOT=%%~fi
if not defined CMDER_ROOT (
for /f "delims=" %%i in ("%ConEmuDir%\..\..") do set CMDER_ROOT=%%~fi
)
:: Remove trailing '\'
if "%CMDER_ROOT:~-1%" == "\" SET CMDER_ROOT=%CMDER_ROOT:~0,-1%
:: Change the prompt style
:: Mmm tasty lamb
@prompt $E[1;32;40m$P$S{git}{hg}$S$_$E[1;30;40m{lamb}$S$E[0m
prompt $E[1;32;40m$P$S{git}{hg}$S$_$E[1;30;40m{lamb}$S$E[0m
:: Pick right version of clink
@if "%PROCESSOR_ARCHITECTURE%"=="x86" (
if "%PROCESSOR_ARCHITECTURE%"=="x86" (
set architecture=86
) else (
set architecture=64
)
:: Run clink
@"%CMDER_ROOT%\vendor\clink\clink_x%architecture%.exe" inject --quiet --profile "%CMDER_ROOT%\config"
:: Tell the user about the clink config files...
if not exist "%CMDER_ROOT%\config\settings" (
echo Generating clink initial settings in %CMDER_ROOT%\config\settings
echo Additional *.lua files in %CMDER_ROOT%\config are loaded on startup.
)
:: Prepare for msysgit
:: Run clink
"%CMDER_ROOT%\vendor\clink\clink_x%architecture%.exe" inject --quiet --profile "%CMDER_ROOT%\config" --scripts "%CMDER_ROOT%\vendor"
:: Prepare for git-for-windows
:: I do not even know, copypasted from their .bat
@set PLINK_PROTOCOL=ssh
@if not defined TERM set TERM=cygwin
set PLINK_PROTOCOL=ssh
if not defined TERM set TERM=cygwin
:: Check if msysgit is installed
@if exist "%ProgramFiles%\Git" (
if exist "%ProgramFiles%\Git" (
set "GIT_INSTALL_ROOT=%ProgramFiles%\Git"
) else if exist "%ProgramFiles(x86)%\Git" (
set "GIT_INSTALL_ROOT=%ProgramFiles(x86)%\Git"
) else if exist "%CMDER_ROOT%\vendor" (
set "GIT_INSTALL_ROOT=%CMDER_ROOT%\vendor\msysgit"
) else if exist "%USERPROFILE%\AppData\Local\Programs\Git" (
set "GIT_INSTALL_ROOT=%USERPROFILE%\AppData\Local\Programs\Git"
) else if exist "%CMDER_ROOT%\vendor\git-for-windows" (
set "GIT_INSTALL_ROOT=%CMDER_ROOT%\vendor\git-for-windows"
)
:: Add git to the path
@if defined GIT_INSTALL_ROOT (
set "PATH=%GIT_INSTALL_ROOT%\bin;%GIT_INSTALL_ROOT%\share\vim\vim74;%PATH%"
if defined GIT_INSTALL_ROOT (
set "PATH=%GIT_INSTALL_ROOT%\bin;%GIT_INSTALL_ROOT%\usr\bin;%GIT_INSTALL_ROOT%\usr\share\vim\vim74;%PATH%"
:: define SVN_SSH so we can use git svn with ssh svn repositories
if not defined SVN_SSH set "SVN_SSH=%GIT_INSTALL_ROOT:\=\\%\\bin\\ssh.exe"
)
:: Enhance Path
@set PATH=%CMDER_ROOT%\bin;%PATH%;%CMDER_ROOT%
set "PATH=%CMDER_ROOT%\bin;%PATH%;%CMDER_ROOT%\"
:: Add aliases
@doskey /macrofile="%CMDER_ROOT%\config\aliases"
:: Set home path
@if not defined HOME set HOME=%USERPROFILE%
@if defined CMDER_START (
@cd /d "%CMDER_START%"
) else (
@if "%CD%\" == "%CMDER_ROOT%" (
@cd /d "%HOME%"
)
:: Drop *.bat and *.cmd files into "%CMDER_ROOT%\config\profile.d"
:: to run them at startup.
if not exist "%CMDER_ROOT%\config\profile.d" (
mkdir "%CMDER_ROOT%\config\profile.d"
)
:: @call "%CMDER_ROOT%/bin/agent.cmd"
pushd "%CMDER_ROOT%\config\profile.d"
for /f "usebackq" %%x in ( `dir /b *.bat *.cmd 2^>nul` ) do (
REM echo Calling %CMDER_ROOT%\config\profile.d\%%x...
call "%CMDER_ROOT%\config\profile.d\%%x"
)
popd
:: make sure we have an example file
if not exist "%CMDER_ROOT%\config\aliases" (
echo Creating intial aliases in %CMDER_ROOT%\config\aliases
copy "%CMDER_ROOT%\vendor\aliases.example" "%CMDER_ROOT%\config\aliases" > null
)
:: Add aliases
doskey /macrofile="%CMDER_ROOT%\config\aliases"
:: See vendor\git-for-windows\README.portable for why we do this
:: Basically we need to execute this post-install.bat because we are
:: manually extracting the archive rather than executing the 7z sfx
if exist "%CMDER_ROOT%\vendor\git-for-windows\post-install.bat" (
echo Running Git for Windows one time Post Install....
cd /d "%CMDER_ROOT%\vendor\git-for-windows\"
"%CMDER_ROOT%\vendor\git-for-windows\git-bash.exe" --no-needs-console --hide --no-cd --command=post-install.bat
cd /d %USERPROFILE%
)
:: Set home path
if not defined HOME set HOME=%USERPROFILE%
:: This is either a env variable set by the user or the result of
:: cmder.exe setting this variable due to a commandline argument or a "cmder here"
if defined CMDER_START (
cd /d "%CMDER_START%"
)
if exist "%CMDER_ROOT%\config\user-profile.cmd" (
rem create this file and place your own command in there
call "%CMDER_ROOT%\config\user-profile.cmd"
) else (
echo Creating user startup file: "%CMDER_ROOT%\config\user-profile.cmd"
(
echo :: use this file to run your own startup commands
echo :: use in front of the command to prevent printing the command
echo.
echo :: call "%%GIT_INSTALL_ROOT%%/cmd/start-ssh-agent.cmd
echo :: set PATH=%%CMDER_ROOT%%\vendor\whatever;%%PATH%%
echo.
) > "%CMDER_ROOT%\config\user-profile.cmd"
)

80
vendor/profile.ps1 vendored
View File

@ -1,4 +1,23 @@
# Add Cmder modules directory to the autoload path.
# Init Script for PowerShell
# Created as part of cmder project
# !!! THIS FILE IS OVERWRITTEN WHEN CMDER IS UPDATED
# !!! Use "%CMDER_ROOT%\config\user-profile.ps1" to add your own startup commands
# We do this for Powershell as Admin Sessions because CMDER_ROOT is not beng set.
if (! $ENV:CMDER_ROOT ) {
$ENV:CMDER_ROOT = resolve-path( $ENV:ConEmuDir + "\..\.." )
}
# Remove trailing '\'
$ENV:CMDER_ROOT = (($ENV:CMDER_ROOT).trimend("\"))
# Compatibility with PS major versions <= 2
if(!$PSScriptRoot) {
$PSScriptRoot = Split-Path $Script:MyInvocation.MyCommand.Path
}
# Add Cmder modules directory to the autoload path.
$CmderModulePath = Join-path $PSScriptRoot "psmodules/"
if( -not $env:PSModulePath.Contains($CmderModulePath) ){
@ -6,7 +25,26 @@ if( -not $env:PSModulePath.Contains($CmderModulePath) ){
}
try {
Get-command -Name "vim" -ErrorAction Stop >$null
} catch {
# # You could do this but it may be a little drastic and introduce a lot of
# # unix tool overlap with powershel unix like aliases
# $env:Path += $(";" + $env:CMDER_ROOT + "\vendor\git-for-windows\usr\bin")
# set-alias -name "vi" -value "vim"
# # I think the below is safer.
new-alias -name "vim" -value $($ENV:CMDER_ROOT + "\vendor\git-for-windows\usr\bin\vim.exe")
new-alias -name "vi" -value vim
}
try {
# Check if git is on PATH, i.e. Git already installed on system
Get-command -Name "git" -ErrorAction Stop >$null
} catch {
$env:Path += $(";" + $env:CMDER_ROOT + "\vendor\git-for-windows\bin")
}
try {
Import-Module -Name "posh-git" -ErrorAction Stop >$null
$gitStatus = $true
} catch {
@ -15,7 +53,7 @@ try {
}
function checkGit($Path) {
if (Test-Path -Path (Join-Path $Path '.git/') ) {
if (Test-Path -Path (Join-Path $Path '.git') ) {
Write-VcsStatus
return
}
@ -40,13 +78,41 @@ function global:prompt {
# Load special features come from posh-git
if ($gitStatus) {
Enable-GitColors
Start-SshAgent -Quiet
}
# Move to the wanted location
if (Test-Path Env:\CMDER_START) {
Set-Location -Path $Env:CMDER_START
} elseif ($Env:CMDER_ROOT -and $Env:CMDER_ROOT.StartsWith($pwd)) {
Set-Location -Path $Env:USERPROFILE
# This is either a env variable set by the user or the result of
# cmder.exe setting this variable due to a commandline argument or a "cmder here"
if ( $ENV:CMDER_START ) {
Set-Location -Path "$ENV:CMDER_START"
}
if (Get-Module PSReadline -ErrorAction "SilentlyContinue") {
Set-PSReadlineOption -ExtraPromptLineCount 1
}
# Enhance Path
$env:Path = "$Env:CMDER_ROOT\bin;$env:Path;$Env:CMDER_ROOT"
# Drop *.ps1 files into "$ENV:CMDER_ROOT\config\profile.d"
# to source them at startup.
if (-not (test-path "$ENV:CMDER_ROOT\config\profile.d")) {
mkdir "$ENV:CMDER_ROOT\config\profile.d"
}
pushd $ENV:CMDER_ROOT\config\profile.d
foreach ($x in ls *.ps1) {
# write-host write-host Sourcing $x
. $x
}
popd
$CmderUserProfilePath = Join-Path $env:CMDER_ROOT "config\user-profile.ps1"
if(Test-Path $CmderUserProfilePath) {
# Create this file and place your own command in there.
. "$CmderUserProfilePath"
} else {
Write-Host "Creating user startup file: $CmderUserProfilePath"
"# Use this file to run your own startup commands" | Out-File $CmderUserProfilePath
}

18
vendor/sources.json vendored
View File

@ -1,22 +1,22 @@
[
{
"name": "msysgit",
"version": "1.9.5-preview20150319",
"url": "https://github.com/msysgit/msysgit/releases/download/Git-1.9.5-preview20150319/PortableGit-1.9.5-preview20150319.7z"
"name": "git-for-windows",
"version": "v2.7.4.windows.1",
"url": "https://github.com/git-for-windows/git/releases/download/v2.7.4.windows.1/PortableGit-2.7.4-32-bit.7z.exe"
},
{
"name": "clink",
"version": "0.4.4",
"url": "https://github.com/mridgers/clink/releases/download/0.4.4/clink_0.4.4.zip"
"version": "0.4.7",
"url": "https://github.com/mridgers/clink/releases/download/0.4.7/clink_0.4.7.zip"
},
{
"name": "conemu-maximus5",
"version": "150513",
"url": "https://github.com/Maximus5/ConEmu/releases/download/v15.05.13/ConEmuPack.150513.7z"
"version": "160207",
"url": "https://github.com/Maximus5/ConEmu/releases/download/v16.02.07/ConEmuPack.160207.7z"
},
{
"name": "clink-completions",
"version": "0.1.0",
"url": "https://github.com/vladimir-kotikov/clink-completions/archive/0.1.0.zip"
"version": "0.2.2",
"url": "https://github.com/vladimir-kotikov/clink-completions/archive/0.2.2.zip"
}
]