2023-07-30 18:46:19 +02:00
|
|
|
#pragma once
|
|
|
|
#include "binfmt/BinaryFormat.h"
|
|
|
|
#include "fs/VFS.h"
|
|
|
|
#include "memory/AddressSpace.h"
|
|
|
|
|
|
|
|
class ScriptLoader : public BinaryFormatLoader
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
Result<bool> sniff() override;
|
|
|
|
Result<u64> load(AddressSpace* space) override;
|
|
|
|
|
2023-07-31 20:41:18 +02:00
|
|
|
Result<Vector<String>> cmdline(const String& path, Vector<String> args) override;
|
2023-07-30 18:46:19 +02:00
|
|
|
|
|
|
|
StringView format() const override
|
|
|
|
{
|
|
|
|
return "script";
|
|
|
|
}
|
|
|
|
|
2023-07-31 20:41:18 +02:00
|
|
|
ScriptLoader(SharedPtr<VFS::Inode> inode, int recursion_level);
|
2023-07-30 18:46:19 +02:00
|
|
|
|
2023-07-31 20:41:18 +02:00
|
|
|
static Result<SharedPtr<BinaryFormatLoader>> create(SharedPtr<VFS::Inode> inode, void*, int);
|
2023-07-30 18:46:19 +02:00
|
|
|
|
|
|
|
private:
|
|
|
|
Vector<String> m_interpreter_cmdline;
|
|
|
|
};
|