rem-cli
CLI for the REM Toolchain. Implemented in the VSCode extension for REM available at REM VSCode
Utilizes:
-rem-extract:
- git = rem-extract
- crates = rem-extract
- rem-controller:
- git = rem-controller
- crates = rem-controller
- rem-borrower:
- git = rem-borrower
- crates = rem-borrower
- rem-repairer:
- git = rem-repairer
- crates = rem-repairer
Getting Started
Make sure that you have the developer tools for rustc installed on your system. Run the following command if you are unsure. This toolchain is built for nightly-2024-08-28. Others may work but are not tested.
Additionally, at some point in the future this CLI may also be dependent on
rust-analyzer
. Probably best to double check it as I'm sure I'll forget to
update this when it becomes dependent on RLS.
From there, rust-toolchain.toml
should be able to do the rest of the heavy
lifting. Refer to its components list if you are unsure.
Usage
Call the CLI using the following syntax
or
Commands
Currently implemented commands:
- controller
- borrower
- repairer
- test
- test-github
run (NYI)
Arguments:
<FILE_PATH> The
<NEW_FILE_PATH> The )
<CALLER_FN_NAME> The
<CALLEE_FN_NAME> The
Running:
controller
Arguments:
<FILE_PATH> The
<NEW_FILE_PATH> The )
<CALLER_FN_NAME> The
<CALLEE_FN_NAME> The
Running:
borrower
Arguments:
<FILE_PATH> The
<NEW_FILE_PATH> The )
<CALLER_FN_NAME> The
<CALLEE_FN_NAME> The
<MUT_METHOD_FILE_PATH> The
<PRE_EXTRACT_FILE_PATH> The
Running:
repairer
Arguments:
<FILE_PATH> The
<NEW_FILE_PATH> The )
<FN_NAME> The
<REPAIRER> Repairer )
Running:
repairer-cargo (NYI)
Arguments:
<SRC_PATH>
<MANIFEST_PATH>
<FN_NAME>
<REPAIRER> Repairer )
Running:
test
Runs the test suite, against the specified filepath. The test suite must contain the following subdirs
- borrower
- controller
- repairer
Arguments:
<Folder> Folder
Running:
At this stage, NOT ALL OF THE TESTS PASS. This is more of a developer function, however, the goal is that the user will also be able to run the test suite from inside the extension in the event that they want to verify their environment.
Note that the testing framework will create a large number of temporary files within the current directory. These will all be cleaned up at the end of each testing phase.
test-github
This command is the same as running test, however, you specify a link to a github repo that contains the files you want to test on,
Arguments:
<REPO> Folder
Options
Getting started with fresh linux install
First install rust, proceeding with the standard options:
|
Then install the nescessary toolchain components:
Then install the nescessary build components
Finally install the openssl dependencies
TODO
- The big one Add integration to RLS (or do it on the VSCode side potentially?)
- Implement the controller, borrower and repairer. Both the CLI end, and the actual functions, need to be implemented
- Implement the complete refactoring toolchain (i.e. give file and context, and refactoring happens from there)
- Update the documentation.
rem-cli
CLI for the REM Toolchain. Implemented in the VSCode extension for REM available at REM VSCode
Utilizes:
-rem-extract:
- git = rem-extract
- crates = rem-extract
- rem-controller:
- git = rem-controller
- crates = rem-controller
- rem-borrower:
- git = rem-borrower
- crates = rem-borrower
- rem-repairer:
- git = rem-repairer
- crates = rem-repairer
Getting Started
Make sure that you have the developer tools for rustc installed on your system. Run the following command if you are unsure. This toolchain is built for nightly-2024-08-28. Others may work but are not tested.
Additionally, at some point in the future this CLI may also be dependent on
rust-analyzer
. Probably best to double check it as I'm sure I'll forget to
update this when it becomes dependent on RLS.
From there, rust-toolchain.toml
should be able to do the rest of the heavy
lifting. Refer to its components list if you are unsure.
Usage
Call the CLI using the following syntax
or
Commands
Currently implemented commands:
- controller
- borrower
- repairer
- test
- test-github
run (NYI)
Arguments:
<FILE_PATH> The
<NEW_FILE_PATH> The )
<CALLER_FN_NAME> The
<CALLEE_FN_NAME> The
Running:
controller
Arguments:
<FILE_PATH> The
<NEW_FILE_PATH> The )
<CALLER_FN_NAME> The
<CALLEE_FN_NAME> The
Running:
borrower
Arguments:
<FILE_PATH> The
<NEW_FILE_PATH> The )
<CALLER_FN_NAME> The
<CALLEE_FN_NAME> The
<MUT_METHOD_FILE_PATH> The
<PRE_EXTRACT_FILE_PATH> The
Running:
repairer
Arguments:
<FILE_PATH> The
<NEW_FILE_PATH> The )
<FN_NAME> The
<REPAIRER> Repairer )
Running:
repairer-cargo (NYI)
Arguments:
<SRC_PATH>
<MANIFEST_PATH>
<FN_NAME>
<REPAIRER> Repairer )
Running:
test
Runs the test suite, against the specified filepath. The test suite must contain the following subdirs
- borrower
- controller
- repairer
Arguments:
<Folder> Folder
Running:
At this stage, NOT ALL OF THE TESTS PASS. This is more of a developer function, however, the goal is that the user will also be able to run the test suite from inside the extension in the event that they want to verify their environment.
Note that the testing framework will create a large number of temporary files within the current directory. These will all be cleaned up at the end of each testing phase.
test-github
This command is the same as running test, however, you specify a link to a github repo that contains the files you want to test on,
Arguments:
<REPO> Folder
Options
Getting started with fresh linux install
First install rust, proceeding with the standard options:
|
Then install the nescessary toolchain components:
Then install the nescessary build components
Finally install the openssl dependencies
TODO
- The big one Add integration to RLS (or do it on the VSCode side potentially?)
- Implement the controller, borrower and repairer. Both the CLI end, and the actual functions, need to be implemented
- Implement the complete refactoring toolchain (i.e. give file and context, and refactoring happens from there)
- Update the documentation.