#pragma once #include "cmd/cmd_base.hpp" #include #include #include #include namespace fsh { class CmdTruncate : public Command { protected: virtual void register_flags() override { ArgFactory& factory = get_factory(); factory.add_rule(1); } virtual void run(std::istream& in, std::ostream& out, ArgManager& args) override { std::string filename = args.get(0).value(); if(!std::ifstream(filename, std::ios_base::in)) { throw std::runtime_error("File does not exist"); } if(!std::ofstream(filename, std::ios_base::out)) { throw std::runtime_error("Failed to truncate"); } } }; }