sop / cygextreg

Execute Cygwin shell scripts from Windows File Explorer.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MIT License

CygExtReg

A utility program allowing to register an extension (eg. .sh) to be executed in Cygwin by double-clicking a file from Windows File Explorer or by dragging and dropping files to an icon of a registered extension.

You can use any scripting language installed on your Cygwin. Just define the preferred shebang line, eg. #!/usr/bin/python3

Installing

Install cygextreg via Cygwin setup.

To install manually, download the latest version for 32-bit (i686) or 64-bit (x86_64) Cygwin installation. Extract the contents of a zip to the root of your Cygwin directory.

Installing from source

Install Cygwin packages:

gcc-g++ make automake autoconf

Get the source:

git clone https://github.com/sop/cygextreg.git

Prepare environment:

aclocal && autoheader && automake --add-missing && autoconf

Compile and install:

./configure && make && make install-strip

Usage

Register default (.sh) filetype:

cygextreg -r

Default is to register only for the current user. To register for all users, use cygextreg -ra. Note that this prompts for an elevated process.

To unregister default filetype:

cygextreg -u

To register another filetype (eg. .bash), pass the extension as an --ext argument:

cygextreg -r --ext bash

Internals

Scripts are executed with bash in an interactive login shell. This means that your ~/.bash_profile will be executed first, which usually sources ~/.bashrc as well. This way you can alter your environment, eg. by modifying the $PATH variable.

Bash is started in a MinTTY terminal with UTF-8 charset. All arguments that are Windows style paths are automatically converted to Cygwin equivalents (/cygdrive/...). So if you drag and drop a file to a script icon, the script receives the dropped file's path in Cygwin format as a first argument.

Multiple files can be dragged and dropped to a registered file type. The script receives paths as separate arguments, eg. $1, $2, $3, etc. (or $@) in bash script or sys.argv[1:] in Python.

If the executed script exits with a non-zero code, MinTTY window shall be kept open so that you have a chance to review the output. If the script succeeds (exits with code 0), MinTTY window is closed automatically.

License

This project is licensed under the MIT License.

About

Execute Cygwin shell scripts from Windows File Explorer.

License:MIT License


Languages

Language:C++ 96.9%Language:Makefile 2.0%Language:M4 1.1%