--- /dev/null
+package Newslash::Command::adduser;
+use Mojo::Base 'Mojolicious::Command';
+
+use Mojo::Util 'getopt';
+use Data::Dumper;
+
+has description => 'Add new user';
+#has usage => sub { shift->extract_usage };
+
+sub run {
+ my ($self, @args) = @_;
+ my $app = $self->app;
+
+ my $seclev = 1;
+ my $author = 0;
+
+ getopt \@args,
+ 'u|username=s' => \my $nickname,
+ 'e|email=s' => \my $email,
+ 'seclev=i' => \$seclev,
+ 'author=i' => \$author;
+
+ if (!$nickname || !$email) {
+ $app->log->error("adduser: nickname or email not given!");
+ return;
+ }
+
+ my $users = $app->model('users');
+ my $uid = $users->create($nickname, $email);
+ if ($uid) {
+ $app->log->info("create new user '$nickname'. uid is $uid");
+ }
+ else {
+ my $err = $users->last_error;
+ $app->log->error("create new user '$nickname' failed - $err");
+ }
+
+ if ($seclev || $author) {
+ my $rs = $users->update(uid => $uid,
+ seclev => $seclev,
+ author => $author);
+ $app->log->info("update user info done ($rs)");
+ }
+}
+
+1;
sub startup {
my $app = shift;
+ # add commands in Newslash::Command
+ push @{$app->commands->namespaces}, 'Newslash::Command';
+
# load config file
# first, check existence of /etc/newslash.conf
if ($app->mode eq 'production' && -e CONFIG_FILE) {