1// Package main provides the command line app for reading the unique machine id of most OSs.
2//
3// Usage: machineid [options]
4//
5// Options:
6//   --appid    <AppID>    Protect machine id by hashing it together with an app id.
7//
8// Try:
9//   machineid
10//   machineid --appid MyAppID
11package main
12
13import (
14	"flag"
15	"fmt"
16	"log"
17
18	"github.com/denisbrodbeck/machineid"
19)
20
21const usageStr = `
22Usage: machineid [options]
23
24Options:
25  --appid    <AppID>    Protect machine id by hashing it together with an app id.
26
27Try:
28  machineid
29  machineid --appid MyAppID
30`
31
32func usage() {
33	log.Fatalln(usageStr)
34}
35
36func main() {
37	var appID string
38	flag.StringVar(&appID, "appid", "", "Protect machine id by hashing it together with an app id.")
39
40	log.SetFlags(0)
41	flag.Usage = usage
42	flag.Parse()
43
44	var id string
45	var err error
46	if appID != "" {
47		id, err = machineid.ProtectedID(appID)
48	} else {
49		id, err = machineid.ID()
50	}
51	if err != nil {
52		log.Fatalf("Failed to read machine id with error: %s\n", err)
53	}
54	fmt.Println(id)
55}
56