Browse Source

[tools] refactor, use #!/bin/sh, update license files (#3998)

Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3998
Reviewed-by: crueter <crueter@eden-emu.dev>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
pull/4002/head^2
lizzie 5 days ago
committed by crueter
parent
commit
9b18d0b111
No known key found for this signature in database GPG Key ID: 425ACD2D4830EBC6
  1. 11
      .ci/license-header.sh
  2. 22
      .ci/source.sh
  3. 2
      docs/Caveats.md
  4. 2
      docs/user/SteamROM.md
  5. 1
      docs/user/ThirdParty.md
  6. 3
      externals/nx_tzdb/tzdb_template.h.in
  7. 13
      hooks/pre-commit
  8. 4
      shell.nix
  9. 2
      tools/README.md
  10. 2
      tools/clang-format.sh
  11. 5
      tools/dtrace-tool.pl
  12. 4
      tools/lanczos-gen.pl
  13. 5
      tools/llvmpipe-run.sh
  14. 2
      tools/optimize-assets.sh
  15. 2
      tools/stale-translations.sh
  16. 20
      tools/svc_generator.py
  17. 4
      tools/translations/qt-source.sh
  18. 4
      tools/translations/update-translations.sh
  19. 2
      tools/unused-strings.sh
  20. 2
      tools/windows/install-vulkan-sdk.sh

11
.ci/license-header.sh

@ -7,7 +7,7 @@
EXCLUDE_FILES="CPM.cmake CPMUtil.cmake GetSCMRev.cmake renderdoc_app.h tools/cpm tools/shellcheck.sh tools/update-cpm.sh tools/windows/vcvarsall.sh externals/stb externals/glad externals/getopt externals/gamemode externals/FidelityFX-FSR externals/demangle externals/bc_decoder externals/cmake-modules" EXCLUDE_FILES="CPM.cmake CPMUtil.cmake GetSCMRev.cmake renderdoc_app.h tools/cpm tools/shellcheck.sh tools/update-cpm.sh tools/windows/vcvarsall.sh externals/stb externals/glad externals/getopt externals/gamemode externals/FidelityFX-FSR externals/demangle externals/bc_decoder externals/cmake-modules"
# license header constants, please change when needed :)))) # license header constants, please change when needed :))))
YEAR=2026
YEAR=$(date "+%Y")
HOLDER="Eden Emulator Project" HOLDER="Eden Emulator Project"
LICENSE="GPL-3.0-or-later" LICENSE="GPL-3.0-or-later"
@ -112,10 +112,10 @@ for file in $FILES; do
[ "$excluded" = "true" ] && continue [ "$excluded" = "true" ] && continue
case "$file" in case "$file" in
*.cmake|*.sh|*CMakeLists.txt)
*.cmake|*.sh|*.ps1|*.py|*.rb|*.perl|*.pl|*.nix|*CMakeLists.txt)
begin="#" begin="#"
;; ;;
*.kt*|*.cpp|*.h|*.qml)
*.kt|*.kts|*.cpp|*.h|*.qml|*.c|*.hpp|*.hxx|*.cxx|*.h.in|*.inc)
begin="//" begin="//"
;; ;;
*) *)
@ -185,11 +185,12 @@ if [ "$UPDATE" = "true" ]; then
for file in $SRC_FILES $OTHER_FILES; do for file in $SRC_FILES $OTHER_FILES; do
case $(basename -- "$file") in case $(basename -- "$file") in
*.cmake|*CMakeLists.txt)
# Windows Powershell wont use shebangs
*.cmake|*.ps1|*CMakeLists.txt)
begin="#" begin="#"
shell="false" shell="false"
;; ;;
*.sh)
*.sh|*.py|*.rb|*.perl|*.pl|*.nix)
begin="#" begin="#"
shell=true shell=true
;; ;;

22
.ci/source.sh

@ -1,22 +0,0 @@
#!/bin/bash -ex
# git-archive-all
export PATH="$PATH:/home/$USER/.local/bin"
GITDATE="`git show -s --date=short --format='%ad' | sed 's/-//g'`"
GITREV="`git show -s --format='%h'`"
REV_NAME="eden-unified-source-${GITDATE}-${GITREV}"
COMPAT_LIST='dist/compatibility_list/compatibility_list.json'
mkdir artifacts
touch "${COMPAT_LIST}"
git describe --abbrev=0 --always HEAD > GIT-COMMIT
git describe --tags HEAD > GIT-TAG || echo 'unknown' > GIT-TAG
git-archive-all --include "${COMPAT_LIST}" --include GIT-COMMIT --include GIT-TAG --force-submodules artifacts/"${REV_NAME}.tar"
cd artifacts/
xz -T0 -9 "${REV_NAME}.tar"
sha256sum "${REV_NAME}.tar.xz" > "${REV_NAME}.tar.xz.sha256sum"
cd ..

2
docs/Caveats.md

@ -46,7 +46,7 @@ Qt Widgets appears to be broken. For now, add `-DENABLE_QT=OFF` to your configur
This is needed for some dependencies that call cc directly (tz): This is needed for some dependencies that call cc directly (tz):
```sh ```sh
echo '#!/bin/sh' >cc
echo '#!/bin/sh -e' >cc
echo 'gcc $@' >>cc echo 'gcc $@' >>cc
chmod +x cc chmod +x cc
export PATH="$PATH:$PWD" export PATH="$PATH:$PWD"

2
docs/user/SteamROM.md

@ -59,7 +59,7 @@ EmuDeck will automatically create an *Emulators - Emulators* parser for ***Steam
4. Paste the following code into the contents of the file, save and close the file. 4. Paste the following code into the contents of the file, save and close the file.
```bash ```bash
#!/bin/bash
#!/bin/sh -e
emuName="eden" #parameterize me emuName="eden" #parameterize me
. "$HOME/.config/EmuDeck/backend/functions/all.sh" . "$HOME/.config/EmuDeck/backend/functions/all.sh"

1
docs/user/ThirdParty.md

@ -13,6 +13,7 @@ The main origin repository is always at https://git.eden-emu.dev/eden-emu/eden.
- https://github.com/eden-emulator/mirror - https://github.com/eden-emulator/mirror
- https://git.crueter.xyz/mirror/eden - https://git.crueter.xyz/mirror/eden
- https://codeberg.org/eden-emu/eden
- https://collective.taymaerz.de/eden/eden - https://collective.taymaerz.de/eden/eden
Other mirrors obviously exist on the internet, but we can't guarantee their reliability and/or availability. Other mirrors obviously exist on the internet, but we can't guarantee their reliability and/or availability.

3
externals/nx_tzdb/tzdb_template.h.in

@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project // SPDX-FileCopyrightText: 2023 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later

13
hooks/pre-commit

@ -1,5 +1,7 @@
#!/bin/sh
#!/bin/sh -e
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later
# SPDX-FileCopyrightText: 2015 Citra Emulator Project # SPDX-FileCopyrightText: 2015 Citra Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
@ -10,20 +12,19 @@ paths_to_check="src/ CMakeLists.txt"
# If there are whitespace errors, print the offending file names and fail. # If there are whitespace errors, print the offending file names and fail.
if ! git diff --cached --check -- $paths_to_check ; then if ! git diff --cached --check -- $paths_to_check ; then
cat<<END
cat<<EOF
Error: This commit would contain trailing spaces or tabs, which is against this repo's policy. Error: This commit would contain trailing spaces or tabs, which is against this repo's policy.
Please correct those issues before committing. (Use 'git diff --check' for more details) Please correct those issues before committing. (Use 'git diff --check' for more details)
If you know what you are doing, you can try 'git commit --no-verify' to bypass the check If you know what you are doing, you can try 'git commit --no-verify' to bypass the check
END
EOF
exit 1 exit 1
fi fi
# Check for tabs, since tab-in-indent catches only those at the beginning of a line # Check for tabs, since tab-in-indent catches only those at the beginning of a line
if git diff --cached -- $paths_to_check | egrep '^\+.* '; then if git diff --cached -- $paths_to_check | egrep '^\+.* '; then
cat<<END
cat<<EOF
Error: This commit would contain a tab, which is against this repo's policy. Error: This commit would contain a tab, which is against this repo's policy.
If you know what you are doing, you can try 'git commit --no-verify' to bypass the check. If you know what you are doing, you can try 'git commit --no-verify' to bypass the check.
END
EOF
exit 1 exit 1
fi fi

4
shell.nix

@ -1,3 +1,7 @@
#!/usr/bin/nix-shell
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later
let let
nixpkgs = fetchTarball "https://github.com/NixOS/nixpkgs/tarball/nixos-24.05"; nixpkgs = fetchTarball "https://github.com/NixOS/nixpkgs/tarball/nixos-24.05";
pkgs = import nixpkgs { config = {}; overlays = []; }; pkgs = import nixpkgs { config = {}; overlays = []; };

2
tools/README.md

@ -1,6 +1,6 @@
# Tools # Tools
Tools for Eden and other subprojects.
Tools for Eden and other subprojects. When adding new scripts please use `#!/bin/sh -e` or `#!/usr/bin/env <interpreter>` (for `.py`, `.rb`, or `.perl`). Keep scripts POSIX compliant (i.e not require hard `bash` to run, just plain old `sh`).
## Third-Party ## Third-Party

2
tools/clang-format.sh

@ -1,4 +1,4 @@
#! /bin/sh
#!/bin/sh -e
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project # SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later

5
tools/dtrace-tool.pl

@ -1,5 +1,6 @@
#!/usr/bin/perl
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
#!/usr/bin/env perl
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
# Basic script to run dtrace sampling over the program (requires Flamegraph) # Basic script to run dtrace sampling over the program (requires Flamegraph)
# Usage is either running as: ./dtrace-tool.sh pid (then input the pid of the process) # Usage is either running as: ./dtrace-tool.sh pid (then input the pid of the process)

4
tools/lanczos-gen.pl

@ -1,5 +1,5 @@
#!/usr/bin/perl
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
#!/usr/bin/env perl
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
use strict; use strict;
use warnings; use warnings;

5
tools/llvmpipe-run.sh

@ -1,5 +1,6 @@
#!/bin/sh
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
#!/bin/sh -e
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
# This script basically allows you to "dirtily" use llvmpipe in any configuration # This script basically allows you to "dirtily" use llvmpipe in any configuration

2
tools/optimize-assets.sh

@ -1,6 +1,6 @@
#!/bin/sh -e #!/bin/sh -e
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
which optipng || exit which optipng || exit

2
tools/stale-translations.sh

@ -1,6 +1,6 @@
#!/bin/sh -e #!/bin/sh -e
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
ANDROID=src/android/app/src/main ANDROID=src/android/app/src/main

20
tools/svc_generator.py

@ -1,5 +1,5 @@
#!/usr/bin/python3
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
#!/usr/bin/env python3
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
# SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project # SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
@ -212,7 +212,7 @@ def emit_size_check():
if type != "void": if type != "void":
lines.append(f"static_assert(sizeof({type}) == {size});") lines.append(f"static_assert(sizeof({type}) == {size});")
return "\n".join(lines)
return f"\n{lines}"
# Replaces a type with an arch-specific one, if it exists. # Replaces a type with an arch-specific one, if it exists.
@ -423,7 +423,7 @@ def emit_lines(lines, indent=' '):
output_lines.append(line) output_lines.append(line)
first = False first = False
return "\n".join(output_lines)
return f"\n{output_lines}"
# Emit a C++ function to wrap a guest SVC. # Emit a C++ function to wrap a guest SVC.
@ -601,7 +601,7 @@ def emit_call(bitness, names, suffix):
lines.append(f"{indent}}}") lines.append(f"{indent}}}")
lines.append("}") lines.append("}")
return "\n".join(lines)
return f"\n{lines}"
def build_fn_declaration(return_type, name, arguments): def build_fn_declaration(return_type, name, arguments):
@ -623,7 +623,7 @@ def build_enum_declarations():
lines.append(f"{indent}{name} = {hex(imm)},") lines.append(f"{indent}{name} = {hex(imm)},")
lines.append("};") lines.append("};")
return "\n".join(lines)
return f"\n{lines}"
def main(): def main():
@ -665,11 +665,11 @@ def main():
with open("src/core/hle/kernel/svc.h", "w") as f: with open("src/core/hle/kernel/svc.h", "w") as f:
f.write(COPYRIGHT) f.write(COPYRIGHT)
f.write(PROLOGUE_H) f.write(PROLOGUE_H)
f.write("\n".join(svc_fw_declarations))
f.write(f"\n{svc_fw_declarations}")
f.write("\n\n") f.write("\n\n")
f.write("\n".join(arch_fw_declarations[BIT_32]))
f.write(f"\n{arch_fw_declarations[BIT_32]}")
f.write("\n\n") f.write("\n\n")
f.write("\n".join(arch_fw_declarations[BIT_64]))
f.write(f"\n{arch_fw_declarations[BIT_64]}")
f.write("\n\n") f.write("\n\n")
f.write(enum_decls) f.write(enum_decls)
f.write(EPILOGUE_H) f.write(EPILOGUE_H)
@ -679,7 +679,7 @@ def main():
f.write(PROLOGUE_CPP) f.write(PROLOGUE_CPP)
f.write(emit_size_check()) f.write(emit_size_check())
f.write("\n\n") f.write("\n\n")
f.write("\n\n".join(wrapper_fns))
f.write(f"\n\n{wrapper_fns}")
f.write("\n\n") f.write("\n\n")
f.write(call_32) f.write(call_32)
f.write("\n\n") f.write("\n\n")

4
tools/translations/qt-source.sh

@ -1,6 +1,6 @@
#!/bin/sh
#!/bin/sh -e
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
SOURCES=$(find src/yuzu src/qt_common -type f \( -name "*.ui" -o -name "*.cpp" -o -name "*.h" -o -name "*.plist" \)) SOURCES=$(find src/yuzu src/qt_common -type f \( -name "*.ui" -o -name "*.cpp" -o -name "*.h" -o -name "*.plist" \))

4
tools/translations/update-translations.sh

@ -1,6 +1,6 @@
#!/bin/sh
#!/bin/sh -e
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
command -v tx-cli && COMMAND=tx-cli command -v tx-cli && COMMAND=tx-cli

2
tools/unused-strings.sh

@ -1,6 +1,6 @@
#!/bin/sh -e #!/bin/sh -e
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
ANDROID=src/android/app/src/main ANDROID=src/android/app/src/main

2
tools/windows/install-vulkan-sdk.sh

@ -1,4 +1,4 @@
#!/usr/bin/sh
#!/bin/sh -e
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project # SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later

Loading…
Cancel
Save