Skip to content

Commit

Permalink
cli: add mu-cmd-{add,mkdir-remove}.cc
Browse files Browse the repository at this point in the history
Missing from previous.
  • Loading branch information
djcb committed Jul 2, 2023
1 parent c4b5795 commit d6416fc
Show file tree
Hide file tree
Showing 3 changed files with 113 additions and 0 deletions.
38 changes: 38 additions & 0 deletions mu/mu-cmd-add.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
/*
** Copyright (C) 2023 Dirk-Jan C. Binnema <[email protected]>
**
** This program is free software; you can redistribute it and/or modify it
** under the terms of the GNU General Public License as published by the
** Free Software Foundation; either version 3, or (at your option) any
** later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software Foundation,
** Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**
*/

#include "config.h"
#include "mu-cmd.hh"

using namespace Mu;

Result<void>
Mu::mu_cmd_add(Mu::Store& store, const Options& opts)
{
for (auto&& file: opts.add.files) {
const auto docid{store.add_message(file)};
if (!docid)
return Err(docid.error());
else
g_debug("added message @ %s, docid=%u",
file.c_str(), docid.value());
}

return Ok();
}
37 changes: 37 additions & 0 deletions mu/mu-cmd-mkdir.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*
** Copyright (C) 2023 Dirk-Jan C. Binnema <[email protected]>
**
** This program is free software; you can redistribute it and/or modify it
** under the terms of the GNU General Public License as published by the
** Free Software Foundation; either version 3, or (at your option) any
** later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software Foundation,
** Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**
*/

#include "config.h"
#include "mu-cmd.hh"

#include "mu-maildir.hh"

using namespace Mu;

Mu::Result<void>
Mu::mu_cmd_mkdir(const Options& opts)
{
for (auto&& dir: opts.mkdir.dirs) {
if (auto&& res =
maildir_mkdir(dir, opts.mkdir.mode); !res)
return res;
}

return Ok();
}
38 changes: 38 additions & 0 deletions mu/mu-cmd-remove.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
/*
** Copyright (C) 2023 Dirk-Jan C. Binnema <[email protected]>
**
** This program is free software; you can redistribute it and/or modify it
** under the terms of the GNU General Public License as published by the
** Free Software Foundation; either version 3, or (at your option) any
** later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software Foundation,
** Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**
*/

#include "config.h"
#include "mu-cmd.hh"

using namespace Mu;

Result<void>
Mu::mu_cmd_remove(Mu::Store& store, const Options& opts)
{
for (auto&& file: opts.remove.files) {
const auto res = store.remove_message(file);
if (!res)
return Err(Error::Code::File, "failed to remove %s", file.c_str());
else
g_debug("removed message @ %s", file.c_str());
}

return Ok();
}

0 comments on commit d6416fc

Please sign in to comment.