Software development tool installation and command routing
A system command line interface (CLI) is enhanced by software development tool autoloading functionality. A textual command is routed to a development tool autoloader, which maps the command to a development tool and ascertains whether a conformant version of the tool is installed. If no version is installed, or only a nonconformant version is installed, then the autoloader locates a conformant version and installs it. Then the textual command is forwarded to the installed conformant version for processing. The textual command entered in the CLI is intercepted and routed to the autoloader by a shell alias, or a search path such as an environment variable, or both. Development tool installation conformance is determined using a predefined tool configuration specification. New developers are accordingly freed from research burdens, security risks, and delays otherwise imposed by the lack of a conformant tool version on their systems.
1 . A computing system comprising:
a terminal emulator configured to receive a textual command in a command line interface;
a command interception mechanism configured to route the textual command to a development tool autoloader;
a digital memory; and
a processor in operable communication with the digital memory, the processor configured to execute the terminal emulator, the command interception mechanism, and the development tool autoloader, the development tool autoloader including instructions which upon execution by the processor cause the development tool autoloader to automatically:
map the textual command to a software development tool;
ascertain that a conformant version of the software development tool that conforms with a predefined software development tool configuration specification is not installed on the computing system;
based on the conformant version of the software development tool not being installed on the computing system, locate the conformant version of the software development tool, install the conformant version on the computing system, and configure the conformant version that is installed on the computing system to provide a configured version of the software development tool; and
forward the textual command to the configured version of the software development tool.
2 . The computing system of claim 1 , wherein the command interception mechanism includes at least one of:
a shell alias which matches at least a portion of the textual command to the development tool autoloader; or
an environment path variable or another search path definition which specifies a location of the development tool autoloader.
3 . The computing system of claim 1 , further comprising the software development tool, wherein the software development tool includes at least one of:
a programming language interpreter;
a programming language runtime system; or
a web assembly.
4 . The computing system of claim 1 , further comprising the predefined software development tool configuration specification, wherein the predefined software development tool configuration specification specifies at least one of:
a version of the software development tool;
a version or a distribution of an operating system or another kernel;
a repository preference;
an environment variable; or
a search path definition.
5 . A software development method performed by a computing system, the method comprising:
getting a textual command in a command line interface;
routing the textual command to a development tool autoloader; and
using the development tool autoloader to perform the following operations:
mapping the textual command to a software development tool;
ascertaining that the software development tool is not installed on the computing system in conformance with a predefined software development tool configuration specification;
locating a conformant version of the software development tool;
installing the conformant version on the computing system; and
forwarding the textual command to the installed software development tool;
wherein at least one of the following:
the development tool autoloader receives no further textual input via the command line interface while performing the mapping, ascertaining, locating, and installing;
the development tool autoloader sends no textual output to the command line interface while performing the mapping, ascertaining, locating, and installing; or
locating the conformant version of the software development tool comprises identifying and selecting the conformant version of the software development tool from a group which includes at least the following: a first version of the software development tool that does not require elevated privileges during installation, and a second version of the software development tool that includes a web assembly.
6 . The method of claim 5 , further comprising launching the installed software development tool as a process, and launching a debugger which provides debug access to the process and which communicates with the command line interface.
7 . The method of claim 5 , wherein locating the conformant version of the software development tool comprises verifying that a located version of the software development tool is a most recent stable published version of the software development tool.
8 . The method of claim 5 , wherein locating the conformant version of the software development tool comprises selecting, from multiple available versions of the software development tool, a version which is most conformant with the predefined software development tool configuration specification.
9 . The method of claim 5 , further comprising locating and installing a management tool to manage the software development tool.
10 . The method of claim 5 , wherein ascertaining that the software development tool is not installed on the computing system in conformance with a predefined software development tool configuration specification comprises at least one of:
ascertaining that the computing system includes an installed configuration of the software development tool which is not in conformance with the predefined software development tool configuration specification; or
ascertaining that the computing system does not include any installed configuration of the software development tool.
11 . The method of claim 5 , wherein the development tool autoloader receives no further textual input via the command line interface while performing the mapping, ascertaining, locating, and installing.
12 . The method of claim 5 , wherein the development tool autoloader sends no textual output to the command line interface while performing the mapping, ascertaining, locating, and installing.
13 . The method of claim 5 , wherein the development tool includes a web assembly that executes in a browser after the conformant version of the computing system is installed on the computing system.
14 . The method of claim 5 , wherein locating the conformant version of the software development tool comprises selecting the conformant version from at least three versions of the software development tool, each of which differs from the other two in at least one of the following ways:
a distribution of an operating system or another kernel, the distribution including a version of the software development tool; or
a source repository, the source repository including a version of the software development tool.
15 . The method of claim 5 , wherein locating the conformant version of the software development tool comprises identifying and selecting the conformant version of the software development tool from the group which includes at least the following: the first version of the software development tool that does not require elevated privileges during installation, and the second version of the software development tool that includes the web assembly.
16 . A computer-readable storage device configured with data and instructions which upon execution by a processor cause a computing system to perform operations, the operations comprising:
getting a textual command in a command line interface;
automatically mapping the textual command to a software development tool;
automatically ascertaining that a conformant version of the software development tool that conforms with a predefined software development tool configuration specification is not installed on the computing system;
based on the conformant version of the software development tool not being installed on the computing system, automatically locating the conformant version of the software development tool and automatically installing the conformant version on the computing system to provide an installed version of the software development tool; and
automatically forwarding the textual command to the installed version of the software development tool.
17 . The computer-readable storage device of claim 16 , wherein the operations comprise:
automatically establishing a shell alias which matches at least a portion of the textual command to a development tool autoloader; and
based on the shell alias being automatically established, automatically mapping the textual command to the software development tool using the development tool autoloader.
18 . The computer-readable storage device of claim 16 , wherein the operations comprise:
automatically establishing an environment path variable or a search path definition which specifies a location of a development tool autoloader; and
based on the environment path or the search path definition being automatically established, automatically mapping the textual command to the software development tool using the development tool autoloader.
19 . The computer-readable storage device of claim 16 , wherein getting the textual command in the command line interface includes getting a command line request to run a script which is written in a programming language;
wherein automatically installing the conformant version includes installing a runtime for the programming language; and
wherein automatically forwarding the textual command includes forwarding an argument from the command line request to the runtime for execution.
20 . The computer-readable storage device of claim 16 , wherein the operations comprise:
automatically locating the conformant version of the software development tool by identifying and selecting the conformant version of the software development tool from a group which includes at least the following: a first version of the software development tool that does not require elevated privileges during installation, and a second version of the software development tool that includes a web assembly.