diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index c908a27ea..e7ce06451 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -39,6 +39,8 @@ on: - 'archive/p/python/testinfo.yml' - 'archive/r/ruby/*.rb' - 'archive/r/ruby/testinfo.yml' + - 'archive/r/rust/*.rs' + - 'archive/r/rust/testinfo.yml' - 'archive/t/typescript/*.ts' - 'archive/t/typescript/testinfo.yml' pull_request: @@ -65,6 +67,8 @@ on: - 'archive/p/python/testinfo.yml' - 'archive/r/ruby/*.rb' - 'archive/r/ruby/testinfo.yml' + - 'archive/r/rust/*.rb' + - 'archive/r/rust/testinfo.yml' - 'archive/t/typescript/*.ts' - 'archive/t/typescript/testinfo.yml' schedule: @@ -127,6 +131,13 @@ jobs: with: fetch-depth: 2 + # Set up Rust for scanning. + - name: Set up Rust + if: ${{ matrix.language == 'rust' }} + run: | + curl https://sh.rustup.rs -sSf | sh -s -- -y + python3 scripts/generate_cargo_toml.py + # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL uses: github/codeql-action/init@v4 diff --git a/.gitignore b/.gitignore index ca969aca7..c28e24853 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,10 @@ package-lock.json # F# Program.fs -# scala +# Scala .metals .scala-build + +# Rust +Cargo.toml +Cargo.lock diff --git a/scripts/generate_cargo_toml.py b/scripts/generate_cargo_toml.py new file mode 100644 index 000000000..f14b9b75e --- /dev/null +++ b/scripts/generate_cargo_toml.py @@ -0,0 +1,25 @@ +from pathlib import Path + + +CARGO_TOML = """\ +[package] +name = "sample-programs" +version = "0.1.0" +edition = "2024" +""" +SCRIPTS_FORMAT = """ +[[bin]] +name = "{name}" +path = "{path}" +""" + +def main(): + cargo_toml = CARGO_TOML + for path in Path("archive/r/rust").glob("*.rs"): + cargo_toml += SCRIPTS_FORMAT.format(name=path.stem, path=path) + + Path("Cargo.toml").write_text(cargo_toml, encoding="utf-8") + + +if __name__ == "__main__": + main() diff --git a/scripts/get_codeql_languages.py b/scripts/get_codeql_languages.py index f5c5d6193..038b88bfb 100644 --- a/scripts/get_codeql_languages.py +++ b/scripts/get_codeql_languages.py @@ -29,6 +29,7 @@ class LanguageInfo: "archive/k/kotlin/*.kt": LanguageInfo(language="kotlin", build_mode="manual"), "archive/p/python/*.py": LanguageInfo(language="python"), "archive/r/ruby/*.rb": LanguageInfo(language="ruby"), + "archive/r/rust/*.rs": LanguageInfo(language="rust"), "archive/t/typescript/*.ts": LanguageInfo(language="typescript"), "archive/s/swift/*.swift": LanguageInfo(language="swift", build_mode="manual", os=MACOS), ".github/workflows/*.yml": LanguageInfo(language="actions"),