started work hs execution
This commit is contained in:
parent
b789ed9adf
commit
caa2a456f8
60
NadekoBot/Modules/Programming/Commands/HaskellRepl.cs
Normal file
60
NadekoBot/Modules/Programming/Commands/HaskellRepl.cs
Normal file
@ -0,0 +1,60 @@
|
||||
using Discord;
|
||||
using Discord.Commands;
|
||||
using NadekoBot.Classes;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
/// <summary>
|
||||
/// I have no idea what am i doing
|
||||
/// </summary>
|
||||
namespace NadekoBot.Modules.Programming.Commands
|
||||
{
|
||||
class HaskellRepl : DiscordCommand
|
||||
{
|
||||
Queue<KeyValuePair<string, Channel>> commandQueue = new Queue<KeyValuePair<string, Channel>>();
|
||||
|
||||
Thread haskellThread;
|
||||
|
||||
public HaskellRepl(DiscordModule module) : base(module)
|
||||
{
|
||||
//start haskell interpreter
|
||||
|
||||
haskellThread = new Thread(new ThreadStart(() =>
|
||||
{
|
||||
Process.Start(new ProcessStartInfo
|
||||
{
|
||||
FileName = "stack", //shouldn't use repl, but a Language.Haskell.Interpreter somehow
|
||||
Arguments = "repl"
|
||||
});
|
||||
|
||||
}));
|
||||
|
||||
|
||||
Task.Run(() =>
|
||||
{
|
||||
//read from queue
|
||||
|
||||
//send the command to the process
|
||||
|
||||
//wait 50 ms for execution
|
||||
|
||||
//read everything from the output
|
||||
|
||||
//send to chanenl
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
internal override void Init(CommandGroupBuilder cgb)
|
||||
{
|
||||
cgb.CreateCommand(Module.Prefix + "hs")
|
||||
.Description("Executes a haskell express with LAMBDABOT")
|
||||
.Do(async e =>
|
||||
{
|
||||
//send a command and a channel to the queue
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
26
NadekoBot/Modules/Programming/ProgrammingModule.cs
Normal file
26
NadekoBot/Modules/Programming/ProgrammingModule.cs
Normal file
@ -0,0 +1,26 @@
|
||||
using Discord.Modules;
|
||||
using NadekoBot.Extensions;
|
||||
using NadekoBot.Modules.Permissions.Classes;
|
||||
using NadekoBot.Modules.Programming.Commands;
|
||||
|
||||
namespace NadekoBot.Modules.Programming
|
||||
{
|
||||
class ProgrammingModule : DiscordModule
|
||||
{
|
||||
public override string Prefix => NadekoBot.Config.CommandPrefixes.Programming;
|
||||
|
||||
public ProgrammingModule()
|
||||
{
|
||||
commands.Add(new HaskellRepl(this));
|
||||
}
|
||||
|
||||
public override void Install(ModuleManager manager)
|
||||
{
|
||||
manager.CreateCommands("", cgb =>
|
||||
{
|
||||
cgb.AddCheck(PermissionChecker.Instance);
|
||||
commands.ForEach(c => c.Init(cgb));
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user